Function at 0x4247f2
Capabilities:
Authenticate hmac
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x468
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x60], 0x4bb64db3
mov dword [esp + 0x64], 0x57b749a5
mov dword [esp + 0x68], 0x536055a1
mov dword [esp + 0x6c], 0x5fa651bd
mov dword [esp + 0x70], 0x5b5a5db1
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x1b
ja 0x42258b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax - 0x6251dbf6]
add eax, 0xa
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0xba
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x1c
jb case.default.0x42259e
lea ebx, [esp + 0x60]
lea ecx, [esp + 0x50]
push ebx
call fcn.00437e80
shr eax, 0x1f
xor esi, esi
jmp dword [eax*4 + 0x44477c]
lea ecx, [esp + 0x50]
push 0x410
call fcn.00438100
not eax
shr eax, 0x1f
xor esi, esi
jmp dword [eax*4 + 0x444784]
mov dword [esp + 0x60], 0x6a037865
mov dword [esp + 0x64], 0x706a0d60
mov dword [esp + 0x68], 0x6c656301
mov dword [esp + 0x6c], 0x177e6605
mov dword [esp + 0x70], 0x601b1206
mov dword [esp + 0x74], 0x7f1c161d
mov dword [esp + 0x78], 0x72791e7a
mov dword [esp + 0x7c], 0x761f7413
mov dword [esp + 0x80], 0x66707672
mov dword [esp + 0x84], 0xe635571
mov dword [esp + 0x88], 0xab5a6161
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov word [esp + 0x94], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x35
ja 0x42269e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x60]
lea edx, [eax + ecx]
add eax, 0x20
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x7c1b5120
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x30]
add al, 0x20
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x60], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x36
jb 0x422660
lea eax, [esp + 0x10]
lea ecx, [esp + 0x50]
push 0
push 0x2b
push ebx
push eax
call fcn.004386d0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp edx, ecx
sete al
jmp dword [eax*4 + 0x44478c]
mov eax, edx
not eax
and eax, ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x28]
not ecx
and ecx, edx
sub eax, ecx
sar eax, 2
imul eax, eax, 0x421
push eax
mov esi, edx
call fcn.004090e0
mov edx, esi
add esp, 4
mov edi, eax
mov dword [esp + 0x48], 0
xor eax, eax
cmp esi, dword [esp + 0x28]
setne al
mov dword [esp + 0x44], edi
jmp dword [eax*4 + 0x444794]
mov eax, dword [esp + 0x48]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x44481c]
mov ebx, dword [esp + 0x44]
jmp dword [0x444824]
add edx, 4
xor eax, eax
cmp edx, dword [esp + 0x28]
setne al
jmp dword [eax*4 + 0x444794]
mov dword [esp + 0x4c], edx
mov esi, dword [edx]
push 0x400
push 0
push ebx
call fcn.00409180
add esp, 0xc
lea eax, [esp + 0x30]
lea ecx, [esp + 0x50]
push eax
push 0x400
push ebx
push esi
call fcn.00438550
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
jmp dword [ecx*4 + 0x44479c]
xor eax, eax
cmp dword [esp + 0x30], 0
sete al
jmp dword [eax*4 + 0x4447a4]
xor eax, eax
mov ecx, 1
jmp dword [ecx*4 + 0x4447ac]
mov eax, 3
xor ecx, ecx
jmp dword [ecx*4 + 0x4447ac]
mov byte [esp + 0x45f], 0
movzx edx, byte [esp + 0x60]
xor eax, eax
mov ecx, 0
test dl, dl
je 0x4227e0
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
cmp dl, 0x2e
je 0x4227e0
movzx edx, byte [ecx + 1]
inc ecx
test dl, dl
jne 0x4227d0
xor ecx, ecx
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x4447b4]
lea edx, [ecx + 1]
movzx eax, byte [ecx + 1]
xor esi, esi
test al, al
mov dword [esp + 8], edx
je 0x422815
nop
cmp al, 0x2e
je 0x42280f
movzx eax, byte [edx + 1]
inc edx
test al, al
jne 0x422800
jmp 0x422811
mov esi, edx
mov edx, dword [esp + 8]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x4447bc]
mov ecx, dword [case.0x4226c0.8]
jmp case.0x422a51.6
mov eax, esi
sub eax, edx
lea ebx, [eax + eax*2]
shr ebx, 2
movzx ecx, byte [ecx + eax]
cmp ecx, 0x3d
je 0x422846
cmp ecx, 0x2e
jne 0x422847
dec ebx
movzx eax, byte [eax + edx - 2]
cmp eax, 0x3d
je 0x422856
cmp eax, 0x2e
jne 0x422857
dec ebx
mov dword [esp + 0x5c], ebx
lea eax, [ebx + 1]
push eax
call fcn.004090e0
add esp, 4
mov dword [esp + 0x24], eax
mov eax, esi
not eax
mov ecx, dword [esp + 8]
and eax, ecx
mov edx, ecx
not edx
and edx, esi
sub edx, eax
jne 0x4228c1
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x24]
mov byte [esi + eax], 0
push esi
call fcn.00401ee0
add esp, 4
mov ebx, eax
jmp dword [0x4447c4]
push esi
call fcn.004090f0
add esp, 4
push ebx
call fcn.00402990
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4447cc]
jmp 0x422a85
xor ebx, ebx
mov esi, 2
mov dword [esp + 0x1c], edx
jmp 0x4228e4
mov ecx, dword [esp + 8]
lea eax, [esi + 4]
add esi, 2
mov ebx, dword [esp + 0x20]
cmp esi, edx
mov esi, eax
jae 0x42287f
mov dword [esp + 0x2c], ebx
movzx eax, byte [ecx + esi - 2]
push eax
mov ebx, ecx
call fcn.004195e0
add esp, 4
mov byte [esp + 0x20], al
movzx eax, byte [ebx + esi - 1]
push eax
call fcn.004195e0
mov edx, dword [esp + 0x20]
add esp, 4
movzx ecx, byte [esp + 0x20]
shl cl, 2
mov byte [esp + 3], al
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov byte [ecx + ebx], al
lea eax, [ebx + 1]
mov dword [esp + 0x20], eax
cmp esi, edx
jae 0x4228d0
mov ebx, dword [esp + 8]
movzx eax, byte [ebx + esi]
push eax
call fcn.004195e0
mov edx, dword [esp + 0x20]
add esp, 4
cmp al, 0x40
mov ecx, ebx
je 0x4228d4
movzx edx, byte [esp + 3]
shl dl, 4
mov byte [esp + 3], al
shr al, 2
and al, 0xf
or al, dl
mov ebx, dword [esp + 0x2c]
lea edx, [ebx + 2]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x24]
mov byte [edx + ebx + 1], al
mov edx, dword [esp + 0x1c]
lea eax, [esi + 1]
cmp eax, edx
jae 0x4228d4
movzx eax, byte [ecx + esi + 1]
push eax
call fcn.004195e0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
add esp, 4
cmp al, 0x40
mov ah, byte [esp + 3]
je 0x4228d4
shl ah, 6
add al, ah
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov byte [edx + ebx + 2], al
mov edx, dword [esp + 0x1c]
add ebx, 3
mov dword [esp + 0x20], ebx
jmp 0x4228d4
mov dword [esp + 0x30], 0xbb1a2e23
lea ecx, [esp + 0x34]
mov dword [ecx + 7], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0xe
ja 0x422a3c
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + 0x12985147]
add ecx, 0x47
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0xf
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0xf
jb 0x422a00
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.00402730
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4447d4]
movzx eax, byte [esp + 0x60]
test al, al
je 0x422a7b
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x422a70
mov byte [edi], 0xa
inc edi
mov al, 1
mov dword [esp + 0x48], eax
push ebx
call fcn.00402f60
add esp, 4
mov ecx, dword [case.0x4226c0.8]
lea ebx, [esp + 0x60]
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
jmp ecx
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4447fc]
xor ecx, ecx
cmp eax, 3
sete cl
mov edx, dword [esp + 0x4c]
jmp dword [ecx*4 + 0x444804]
xor eax, eax
xor ecx, ecx
cmp eax, 3
sete cl
mov edx, dword [esp + 0x4c]
jmp dword [ecx*4 + 0x444804]
jmp dword [0x444818]
jmp dword [0x4447dc]
movzx ecx, byte [eax]
test cl, cl
je 0x422b1b
lea edx, [eax + 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x422b10
mov word [edi], 0x203a
add edi, 2
jmp case.0x422a51.2
mov word [edi], 0x203a
add edi, 2
jmp dword [0x4447e4]
movzx ecx, byte [eax]
test cl, cl
je 0x422b30
lea edx, [eax + 1]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x422b50
jmp 0x422b30
xor esi, esi
test edx, edx
jne 0x422c3a
jmp case.0x42259e.1
mov ecx, dword [ebp + 8]
mov byte [edi], 0
mov ebx, dword [esp + 0x44]
sub edi, ebx
mov dword [esp + 0x60], 0xfffafdad
mov dword [esp + 0x64], 0xeb87f6f1
mov dword [esp + 0x68], 0xecf0f6fd
mov dword [esp + 0x6c], 0x82928eb3
mov dword [esp + 0x70], 0xf7c988fd
mov dword [esp + 0x74], 0x858b8e8b
mov dword [esp + 0x78], 0x9b9ec79b
mov word [esp + 0x7c], 0x119c
mov dword [esp + 0x7e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x21
ja 0x422c0b
mov eax, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x60]
lea esi, [eax - 0x759db9ce]
add eax, 0x32
and eax, edx
or esi, edx
sub esi, eax
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x30]
add al, 0xa2
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x60], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x22
jb 0x422bd0
lea eax, [esp + 0x60]
push edi
push ebx
push eax
call fcn.004099f0
jmp dword [0x444824]
push ebx
mov esi, eax
call fcn.004090f0
mov eax, esi
add esp, 4
and al, 1
mov esi, eax
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test edx, edx
je case.0x42259e.1
cmp edx, ecx
je case.0x42259e.1
push edx
call fcn.004090f0
add esp, 4
mov ebx, esi
lea ecx, [esp + 0x50]
call fcn.00438240
mov eax, dword [case.0x42281c.30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
test eax, eax
sete cl
mov edx, 0x20119
xor eax, eax
jmp dword [ecx*4 + 0x4448d4]
jmp dword [eax*4 + 0x44484c]
mov dword [esi + 8], ebx
mov dword [edi], 0xebc215ba
mov dword [edi + 4], 0xef31e931
mov dword [edi + 8], 0xe339ed31
mov dword [edi + 0xc], 0xe736e136
mov dword [edi + 0x10], 0xfb48e549
mov dword [edi + 0x14], 0xff3ff929
mov dword [edi + 0x18], 0xf324fd3b
mov dword [edi + 0x1c], 0xf722f12d
mov dword [edi + 0x20], 0xcb58f52d
mov dword [edi + 0x24], 0xcf19c91f
mov dword [edi + 0x28], 0xc318cd14
mov dword [edi + 0x2c], 0xc707c16b
mov dword [edi + 0x30], 0xdb1fc510
mov dword [edi + 0x34], 0xdf72d976
mov dword [edi + 0x38], 0xd360dd79
mov dword [edi + 0x3c], 0xd76bd158
mov dword [edi + 0x40], 0xab01d57a
mov dword [edi + 0x44], 0xaf13a91e
mov dword [edi + 0x48], 0xa31fad09
mov word [edi + 0x4c], 0xa1a2
mov byte [edi + 0x56], 0
mov dword [edi + 0x52], 0
mov dword [edi + 0x4e], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x56
ja 0x422ea3
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea ebx, [eax + 0x7d]
and ebx, ecx
add eax, ecx
add ebx, ebx
sub eax, ebx
add eax, 0xe777097d
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x28]
add al, 0x95
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x57
jb 0x422e70
push 0
push 0
push edx
mov ebx, dword [esi + 0xc]
push ebx
push edi
call fcn.0043c8f0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x444864]
push dword [esi + 0x10]
push dword [esi + 0x54]
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebx]
call fcn.0043cd30
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44486c]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x422efa
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ecx, dword [esi + 0x18]
mov dword [ecx], eax
mov ebx, dword [esi + 8]
mov dword [ebx], 0x1b8c1951
mov dword [ebx + 4], 0x79a0597
mov dword [ebx + 8], 0x39601a1
mov dword [ebx + 0xc], 0xfbe0d98
mov dword [ebx + 0x10], 0xb9609a9
mov dword [ebx + 0x14], 0x777675dc
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1f
ja 0x422f96
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
lea ebx, [ecx + 0x1bb4902c]
add ecx, 0x2c
and ecx, edx
or ebx, edx
sub ebx, ecx
mov dword [esi + 0x28], ebx
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 0x28]
add cl, 0xcc
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x20
jb 0x422f60
push dword [esi + 0x10]
push eax
push 0
push ebx
mov ebx, dword [esi + 0xc]
push dword [ebx]
call fcn.0043d3e0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x444874]
mov ebx, dword [esi + 0x18]
mov eax, dword [ebx]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44487c]
push eax
call fcn.004090f0
add esp, 4
mov dword [ebx], 0
mov ebx, dword [esi + 0xc]
mov eax, dword [ebx]
mov dword [esi + 0x64], eax
mov dword [esi + 0x28], 0x32353437
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x33], 0
mov dword [esi + 0x14], 0
mov eax, dword [esi + 0x14]
cmp eax, 0xe
ja 0x42304e
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
movzx edx, byte [esi + ecx + 0x28]
lea ecx, [eax - 0x25adae87]
mov ebx, edx
not ebx
or ebx, ecx
and ecx, edx
add ecx, ebx
neg ecx
add eax, ecx
add eax, 0xda525178
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xb1
mov ecx, dword [esi + 0x14]
mov byte [esi + ecx + 0x28], al
inc dword [esi + 0x14]
mov eax, dword [esi + 0x14]
cmp eax, 0xf
jb 0x423010
mov ecx, dword [0x448868]
test ecx, ecx
mov ebx, dword [esi + 8]
je case.default.0x4230d0
mov eax, dword [esi + 0x28]
mov dword [esi + 0xa0], eax
xor eax, eax
mov edx, dword [0x44886c]
nop
nop
nop
nop
cmp dword [edx + eax*8], 0x11081610
je 0x423097
inc eax
cmp ecx, eax
jne 0x423070
jmp case.default.0x4230d0
mov eax, 4
xor ecx, ecx
cmp eax, 4
setl cl
mov ebx, dword [esi + 8]
jmp dword [ecx*4 + 0x4448c4]
mov eax, dword [edx + eax*8 + 4]
cmp eax, dword [esi + 0xa0]
je case.default.0x4230d0
push dword [esi + 0x64]
push 1
push dword [0x448870]
push eax
call fcn.00439850
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ecx, ecx
mov eax, dword [esi + 0x18]
cmp dword [eax], 0
setne cl
mov eax, 2
jmp dword [ecx*4 + 0x444884]
push dword [esi + 0x40]
call fcn.0043bdf0
add esp, 4
movzx edx, al
xor eax, eax
mov ecx, 1
jmp dword [edx*4 + 0x44488c]
xor edx, edx
mov ecx, dword [esi + 0x40]
cmp dword [ecx], 1
mov ecx, 1
sete dl
jmp dword [edx*4 + 0x444894]
mov eax, 2
xor ecx, ecx
mov edx, dword [case.0x422fad.12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
jmp dword [ecx*4 + 0x4448ac]
xor eax, eax
jmp dword [0x4448bc]
xor ecx, ecx
cmp eax, 4
setl cl
jmp dword [ecx*4 + 0x4448c4]
xor ecx, ecx
cmp eax, 4
sete cl
mov edx, 0x20119
xor eax, eax
jmp dword [ecx*4 + 0x4448cc]
jmp dword [0x444860]
jmp dword [0x4448e8]
xor eax, eax
mov ecx, dword [esi + 0x18]
cmp dword [ecx], 0
sete al
jmp dword [eax*4 + 0x4448ec]
mov eax, dword [esi + 0x20]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov eax, dword [esi + 0x1c]
mov dword [eax], 0xc369c562
mov dword [eax + 4], 0xcf72c173
mov dword [eax + 8], 0xcb7bcd64
mov dword [eax + 0xc], 0xd76cc963
mov dword [eax + 0x10], 0xd365d57b
mov dword [eax + 0x14], 0xdf7ad160
mov dword [eax + 0x18], 0xdb75dd69
mov dword [eax + 0x1c], 0xa762d928
mov dword [eax + 0x20], 0xa30ea50a
lea ebx, [eax + 0x24]
mov word [eax + 0x24], 0xa1a2
mov dword [eax + 0x26], 0
mov byte [eax + 0x2a], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x2a
ja 0x423250
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [eax + edx]
lea edi, [ecx - 0x325707df]
add ecx, 0x21
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x28], edi
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x28]
mov edx, ecx
xor edx, 0x18
and ecx, 0x18
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 4]
mov byte [eax + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x2b
jb 0x423210
mov ecx, 9
mov edx, dword [esi + 0x3c]
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [edx + 0x24]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov eax, dword [esi + 0x18]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x423280
cmp eax, 0xffffffd9
jge 0x42329e
mov eax, 0xffffffff
jmp 0x4232a1
xor eax, eax
jmp 0x423a6d
add eax, 0x26
push eax
call fcn.004090e0
add esp, 4
mov ecx, dword [esi + 0x24]
mov dword [ecx], eax
movzx ecx, word [edi]
test cx, cx
je 0x4232d1
lea edx, [edi + 2]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4232c0
mov word [eax], 0
mov edx, dword [esi + 0x3c]
movzx ecx, word [edx]
test cx, cx
je 0x423301
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4232f0
mov word [eax], 0
jmp dword [0x4448f4]
push edi
call fcn.004090f0
add esp, 4
push 0x60
push 3
push 0x120089
mov edi, dword [esi + 0x4c]
push edi
mov eax, dword [esi + 0x24]
push dword [eax]
call fcn.0043c050
add esp, 0x14
not eax
shr eax, 0x1f
mov ebx, dword [esi + 0x58]
jmp dword [eax*4 + 0x4448fc]
push 0
push ebx
push dword [edi]
call fcn.0043c410
add esp, 0xc
mov ecx, dword [case.0x422eb8.43]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444914]
mov ebx, dword [ebx]
lea eax, [ebx + 1]
push eax
call fcn.004090e0
add esp, 4
mov ecx, edi
mov edi, eax
mov eax, dword [esi + 0x78]
mov dword [eax], edi
push 0
push ebx
push edi
push dword [ecx]
call fcn.0043c520
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44491c]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444964]
push edi
call fcn.004090f0
add esp, 4
jmp case.0x4234b7.15
mov eax, dword [esi + 0x58]
mov ebx, dword [eax]
mov byte [edi + ebx], 0
push 0x20
call fcn.004090e0
add esp, 4
mov ecx, eax
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov eax, dword [esi + 0x8c]
mov dword [eax], ecx
mov dword [esi + 8], ecx
push ebx
push edi
call fcn.00425410
movzx eax, al
jmp dword [eax*4 + 0x444924]
mov edi, dword [esi + 0x68]
mov dword [edi], 0xdfeed4f3
mov dword [edi + 4], 0xe4deeed3
mov dword [edi + 8], 0x9febf79f
mov dword [edi + 0xc], 0x82e19aa8
mov dword [edi + 0x10], 0xa8939ea2
mov dword [edi + 0x14], 0x9a9dfeeb
mov dword [edi + 0x18], 0xb7aea6af
mov dword [edi + 0x1c], 0x21b7
mov byte [edi + 0x20], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x20
ja 0x4234a5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add eax, 0x35
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x52835a35
mov dword [esi + 0x28], ecx
mov eax, dword [esi + 0x28]
add al, 0x8d
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x21
jb 0x423470
mov ecx, dword [esi + 8]
push edi
call fcn.00425670
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x44492c]
mov eax, dword [esi + 0x8c]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x44495c]
mov ecx, edi
call fcn.004257f0
push edi
call fcn.004090f0
add esp, 4
mov eax, dword [esi + 0x78]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444964]
mov eax, dword [esi + 0x78]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444964]
mov edi, dword [esi + 0x4c]
mov eax, dword [edi]
mov dword [esi + 0x28], 0x32353437
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x33], 0
mov dword [esi + 0x14], 0
mov ecx, dword [esi + 0x14]
cmp ecx, 0xe
ja 0x423580
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x14]
movzx edi, byte [esi + edx + 0x28]
lea edx, [ecx - 0x25adae87]
mov ebx, edi
not ebx
or ebx, edx
and edx, edi
add edx, ebx
neg edx
add ecx, edx
add ecx, 0xda525178
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0xb1
mov edx, dword [esi + 0x14]
mov byte [esi + edx + 0x28], cl
inc dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
cmp ecx, 0xf
jb 0x423540
mov ecx, dword [0x448868]
test ecx, ecx
je case.0x422eb8.38
mov edx, dword [esi + 0x28]
xor edi, edi
mov ebx, dword [0x44886c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x4235b0
inc edi
cmp ecx, edi
jne 0x4235a0
jmp case.0x422eb8.38
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x4235f9
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44496c]
push eax
call fcn.004090f0
add esp, 4
mov eax, dword [esi + 0x20]
mov ebx, dword [eax]
mov edi, dword [eax + 4]
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x444974]
xor eax, eax
test ebx, ebx
jne 0x423a20
jmp 0x423a6d
push eax
push 1
push dword [0x448870]
push ecx
call fcn.00439850
add esp, 0x10
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44496c]
mov eax, dword [esi + 0x20]
mov ebx, dword [eax]
mov edi, dword [eax + 4]
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x444974]
sub edi, ebx
sar edi, 3
mov eax, edi
and eax, 0x421
mov ecx, edi
or edi, 0x421
imul edi, eax
xor eax, 0x421
and ecx, 0xfffffbde
imul ecx, eax
add edi, ecx
push edi
call fcn.004090e0
add esp, 4
mov ecx, dword [esi + 0x5c]
mov dword [ecx], eax
mov ecx, dword [esi + 0x44]
mov dword [ecx], eax
mov eax, dword [esi + 0x50]
mov byte [eax], 0
mov ebx, dword [esi + 0xac]
mov dword [ebx], 0x34e0125
mov dword [ebx + 4], 0x765056b
mov dword [ebx + 8], 0xb660969
mov dword [ebx + 0xc], 0xf7e0d4d
mov dword [ebx + 0x10], 0x13561160
mov dword [ebx + 0x14], 0x17621575
mov dword [ebx + 0x18], 0x1b3f1979
mov dword [ebx + 0x1c], 0x1f4d1d40
mov dword [ebx + 0x20], 0x23472154
mov dword [ebx + 0x24], 0x274b2545
mov dword [ebx + 0x28], 0x2b462974
mov dword [ebx + 0x2c], 0x2f4d2d43
mov dword [ebx + 0x30], 0x335e3151
mov dword [ebx + 0x34], 0x3740351a
mov dword [ebx + 0x38], 0x3b5c395c
lea eax, [ebx + 0x3c]
mov dword [ebx + 0x3c], 0x3d3c
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x3f
ja 0x42373d
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
mov edi, ecx
and edi, 0xf19cff80
xor ecx, 0xf19cff80
lea edi, [ecx + edi*2]
and ecx, edx
add edi, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 0x28], edi
mov ecx, dword [esi + 0x28]
add cl, 0x80
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x40
jb 0x423700
mov edx, dword [esi + 0x98]
mov edi, edx
mov ecx, 0xf
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov edi, edx
add edi, 0x3c
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0x94]
push edi
push 0
push 0
push 0x1e
push edx
push 0
call dword [0x448864]
mov ebx, dword [edi]
test ebx, ebx
jns 0x423782
mov eax, 0xffffffff
jmp 0x423785
lea eax, [ebx + ebx]
push eax
call fcn.004090e0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x9c]
mov dword [eax], edi
push dword [esi + 0x94]
push ebx
push edi
push 0x1e
push dword [esi + 0x98]
push 0
call dword [0x448864]
push 0x60
push 3
push 0x120089
push dword [esi + 0x48]
push edi
call fcn.0043c050
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44497c]
push 0
mov ebx, dword [esi + 0x90]
push ebx
mov edi, dword [esi + 0x48]
push dword [edi]
call fcn.0043c410
add esp, 0xc
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444984]
jmp 0x423841
mov ebx, dword [ebx]
lea eax, [ebx + 1]
push eax
call fcn.004090e0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x74]
mov dword [eax], edi
push 0
push ebx
push edi
mov eax, dword [esi + 0x48]
push dword [eax]
call fcn.0043c520
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44498c]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444a54]
push edi
call fcn.004090f0
add esp, 4
mov edi, dword [esi + 0x48]
mov eax, dword [edi]
mov dword [esi + 0x28], 0x32353437
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x33], 0
mov dword [esi + 0x14], 0
mov ecx, dword [esi + 0x14]
cmp ecx, 0xe
ja 0x4238b0
nop
nop
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x14]
movzx edi, byte [esi + edx + 0x28]
lea edx, [ecx - 0x25adae87]
mov ebx, edi
not ebx
or ebx, edx
and edx, edi
add edx, ebx
neg edx
add ecx, edx
add ecx, 0xda525178
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0xb1
mov edx, dword [esi + 0x14]
mov byte [esi + edx + 0x28], cl
inc dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
cmp ecx, 0xf
jb 0x423870
mov ecx, dword [0x448868]
test ecx, ecx
je case.0x423617.4
mov edx, dword [esi + 0x28]
xor edi, edi
mov ebx, dword [0x44886c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x4238e0
inc edi
cmp ecx, edi
jne 0x4238d0
jmp case.0x423617.4
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x423617.4
push eax
push 1
push dword [0x448870]
push ecx
call fcn.00439850
add esp, 0x10
mov eax, dword [case.0x423617.63]
nop
jmp eax
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444a6c]
push eax
call fcn.004090f0
add esp, 4
mov eax, dword [esi + 0x50]
movzx ebx, byte [eax]
jmp dword [ebx*4 + 0x444a74]
mov eax, dword [esi + 0x44]
mov eax, dword [eax]
mov byte [eax], 0
mov ecx, dword [esi + 0xa8]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x5c]
mov edx, dword [edx]
mov dword [esi + 8], edx
sub eax, edx
mov edx, dword [esi + 0x60]
mov dword [edx], 0xf7f4f5a9
mov dword [edx + 4], 0xf38f8cf5
mov dword [edx + 8], 0xf6fefcf9
mov dword [edx + 0xc], 0xfcf494bb
mov dword [edx + 0x10], 0xefc586f9
mov dword [edx + 0x14], 0x8dfb8483
mov dword [edx + 0x18], 0x8380cf83
mov word [edx + 0x1c], 0x1986
mov dword [edx + 0x1e], 0
mov dword [edx + 0x21], 0
mov dword [esi + 4], 0
mov edi, dword [esi + 4]
cmp edi, 0x24
ja 0x4239e2
nop
nop
mov edi, dword [esi + 4]
mov ebx, dword [esi + 4]
mov edx, dword [esi + 0x60]
movzx edx, byte [edx + ebx]
lea ebx, [edi + edx]
add edi, 0xb1
and edi, edx
add edi, edi
sub ebx, edi
add ebx, 0x4f1241b1
mov dword [esi + 0x28], ebx
mov edx, dword [esi + 0x28]
add dl, 0x29
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0x60]
mov byte [ebx + edi], dl
inc dword [esi + 4]
mov edx, dword [esi + 4]
cmp edx, 0x25
mov edx, dword [esi + 0x60]
jb 0x4239a0
push eax
push dword [esi + 8]
push edx
call fcn.004099f0
mov ebx, eax
mov eax, dword [esi + 0x50]
mov byte [eax], bl
mov eax, dword [esi + 0x5c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444a7c]
push eax
call fcn.004090f0
add esp, 4
test bl, bl
setne al
mov ecx, dword [esi + 0x20]
mov ebx, dword [ecx]
mov edi, dword [ecx + 4]
test ebx, ebx
je 0x423a6d
cmp ebx, edi
je 0x423a6d
mov dword [esi + 0xc], eax
mov dword [esi + 8], ebx
jmp 0x423a34
cmp ebx, edi
je 0x423a48
mov eax, dword [ebx]
add ebx, 8
test eax, eax
je 0x423a30
push eax
call fcn.004090f0
add esp, 4
jmp 0x423a30
push dword [esi + 8]
call fcn.004090f0
add esp, 4
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov eax, dword [esi + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x50]
movzx ebx, byte [eax]
jmp dword [ebx*4 + 0x444a74]
mov eax, dword [esi + 0x5c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444a7c]
mov eax, dword [esi + 0x90]
mov eax, dword [eax]
mov dword [esi + 8], eax
mov byte [edi + eax], 0
push 0x20
call fcn.004090e0
add esp, 4
mov ebx, eax
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov eax, dword [esi + 0x84]
mov dword [eax], ebx
mov ecx, ebx
push dword [esi + 8]
push edi
call fcn.00425410
movzx eax, al
jmp dword [eax*4 + 0x444994]
mov edi, dword [esi + 0xa4]
mov dword [edi], 0x57585e7b
mov dword [edi + 4], 0x4250402b
mov dword [edi + 8], 0x475b4f97
mov dword [edi + 0xc], 0x688d5c32
mov dword [edi + 0x10], 0x4e535848
mov dword [edi + 0x14], 0x45457683
mov dword [edi + 0x18], 0xbfad5046
mov dword [edi + 0x1c], 0xb7a9a88f
mov word [edi + 0x20], 0x4da9
mov dword [edi + 0x22], 0
mov word [edi + 0x26], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x27
ja 0x423b93
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x66]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xb8e36266
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x28]
add al, 0x36
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x28
jb 0x423b60
mov ecx, ebx
push edi
call fcn.00425670
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44499c]
add eax, 8
mov edx, dword [esi + 0x70]
nop
mov eax, dword [eax]
mov dword [edx], eax
mov ecx, dword [case.0x423ba2.5]
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4449b4]
mov edi, dword [eax]
xor ebx, ebx
cmp dword [eax + 0x18], 3
jne case.default.0x423be4
mov ebx, dword [eax + 0x10]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x4449bc]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x4449c4]
mov eax, ebx
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x423c40
sub ecx, ebx
inc ecx
shr ecx, 1
mov dword [esi + 0x4c], ecx
lea eax, [ecx + 1]
push eax
call fcn.004090e0
add esp, 4
mov ecx, ebx
mov ebx, eax
mov eax, dword [esi + 0x88]
mov dword [eax], ebx
mov eax, dword [case.0x423ba2.16]
mov dword [esi + 8], ecx
movsx edx, byte [ecx]
xor ecx, ecx
test edx, edx
setne cl
mov dword [esi + 0x24], ebx
mov dword [esi + 0x10], edi
jmp dword [ecx*4 + 0x4449cc]
inc edi
mov ebx, dword [esi + 0xc]
mov byte [ebx], dl
inc ebx
mov dword [esi + 8], edi
movsx edx, byte [edi]
xor ecx, ecx
test edx, edx
setne cl
mov edi, dword [esi + 0x10]
jmp dword [ecx*4 + 0x4449cc]
jmp eax
mov dword [esi + 0xc], ebx
mov ecx, edx
or ecx, 0x20
lea ebx, [ecx - 0x61]
add edx, 0xffffffd0
cmp edx, 0xa
jb 0x423c87
mov dl, 0xff
cmp ebx, 6
jae case.default.0x423c9f
add cl, 0xa9
mov edx, ecx
mov edi, dword [esi + 8]
movsx ebx, byte [edi + 1]
xor ecx, ecx
test ebx, ebx
setne cl
jmp dword [ecx*4 + 0x4449e4]
mov ecx, ebx
or ecx, 0x20
lea edi, [ecx - 0x61]
mov dword [esi + 0x18], edi
add ebx, 0xffffffd0
cmp ebx, 0xa
jb 0x423cbb
mov bl, 0xff
mov edi, dword [esi + 0x10]
shl dl, 4
add dword [esi + 8], 2
cmp dword [esi + 0x18], 6
jae case.default.0x423ce5
add cl, 0xa9
mov ebx, ecx
or dl, bl
mov ebx, dword [esi + 0xc]
mov byte [ebx], dl
inc ebx
mov ecx, dword [esi + 8]
movsx edx, byte [ecx]
xor ecx, ecx
test edx, edx
setne cl
jmp dword [ecx*4 + 0x4449cc]
mov byte [ebx], 0
nop
inc edi
movzx eax, byte [edi - 1]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x423cf0
cmp ecx, 0x20
je 0x423cf0
movzx ecx, al
cmp ecx, 0x2b
je 0x423d16
cmp ecx, 0x2d
jne 0x423fa8
cmp al, 0x2b
sete byte [esi + 0x3c]
movzx eax, byte [edi]
cmp al, 0x30
jne 0x423d33
movzx eax, byte [edi + 1]
and al, 0xdf
xor ecx, ecx
cmp al, 0x58
sete cl
lea edi, [edi + ecx*2]
mov dword [esi + 8], 0
xor ecx, ecx
xor eax, eax
jmp 0x423d6c
mov dword [esi + 0x10], 0
xor edx, edx
mov dword [esi + 0xc], 0xffffffff
mov ebx, 0xffffffff
mov dword [esi + 0x18], 0x22
mov ecx, dword [esi + 0x10]
add ecx, dword [esi + 0xc]
adc edx, ebx
mov eax, dword [esi + 0x18]
mov dword [esi + 8], eax
mov eax, edx
mov edx, eax
mov eax, dword [esi + 8]
mov dword [esi + 0x18], eax
movsx eax, byte [edi]
lea ebx, [eax - 0x30]
cmp ebx, 0xa
mov dword [esi + 0xc], ecx
jb 0x423da6
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x19
ja 0x423e57
or al, 0x20
cmp al, 0x66
jg 0x423e57
movsx ebx, al
add ebx, 0xffffffa9
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], ebx
inc edi
mov ebx, edx
mov edx, ecx
and edx, ebx
mov ecx, 0xffffffff
mov dword [esi + 8], 0x22
mov eax, 0xffffffff
cmp edx, 0xffffffff
je 0x423d6c
test ebx, 0xf0000000
je 0x423de0
mov dword [esi + 8], 0x22
cmp dword [esi + 0x10], 0
jne 0x423d6c
jmp 0x423d40
mov ecx, dword [esi + 0xc]
mov eax, ecx
and eax, 0x10
mov dword [esi + 0x40], eax
xor eax, 0x10
mov dword [esi + 8], ebx
mov edx, ecx
and edx, 0xffffffef
mov dword [esi + 0x1c], eax
mov ebx, dword [esi + 0x1c]
imul ebx, dword [esi + 8]
mov dword [esi + 0x1c], ebx
mul edx
mov dword [esi + 0x54], eax
add edx, dword [esi + 0x1c]
mov dword [esi + 0x1c], edx
or ecx, 0x10
mov eax, ecx
mov ebx, dword [esi + 0x40]
mul ebx
mov ecx, eax
mov eax, dword [esi + 8]
imul eax, ebx
mov ebx, edx
or ebx, eax
add ecx, dword [esi + 0x54]
adc ebx, dword [esi + 0x1c]
mov eax, dword [esi + 0x10]
mov edx, eax
sar edx, 0x1f
mov dword [esi + 0xc], ecx
add eax, ecx
mov eax, edx
adc eax, ebx
mov ecx, 0xffffffff
mov eax, 0xffffffff
mov dword [esi + 8], 0x22
jb 0x423d6c
jmp 0x423d5c
xor edi, edi
mov eax, dword [esi + 0xc]
neg eax
mov ecx, 0
sbb ecx, edx
cmp byte [esi + 0x3c], 0
jne case.default.0x423e85
mov dword [esi + 0xc], eax
mov edx, ecx
mov dword [esi + 8], edx
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
xor edx, edx
mov dword [esi + 0x10], ecx
cmp eax, ecx
setne dl
jmp dword [edx*4 + 0x4449ec]
jmp dword [0x4449fc]
mov edi, dword [eax]
xor ecx, ecx
jmp dword [ecx*4 + 0x444a0c]
add eax, 8
xor edx, edx
cmp eax, dword [esi + 0x10]
setne dl
jmp dword [edx*4 + 0x4449ec]
cmp dword [esi + 0x18], 0x22
setne cl
mov edx, dword [eax + 4]
mov ebx, edx
shr ebx, 0x1c
xor ebx, dword [esi + 8]
shl edx, 4
or edx, 1
xor edx, dword [esi + 0xc]
or edx, ebx
sete dl
and dl, cl
movzx ecx, dl
jmp dword [ecx*4 + 0x444a04]
mov ecx, 1
jmp dword [ecx*4 + 0x444a0c]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x444a14]
xor eax, eax
mov ecx, dword [esi + 0x24]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x444a24]
push ecx
call fcn.004090f0
add esp, 4
jmp case.0x423ba2.35
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esi + 0x24]
mov dword [eax + 4], ecx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x423f90
mov ecx, dword [esi + 0x7c]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov ebx, dword [esi + 0x6c]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x932a8d34
push dword [0x448874]
call fcn.0043b390
add esp, 8
push ebx
push 1
push 0
push 0
push dword [esi + 0x7c]
push 0
push dword [esi + 0x80]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444a1c]
xor eax, eax
mov ecx, dword [esi + 0x24]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x444a24]
dec edi
mov byte [esi + 0x3c], 1
cmp al, 0x30
je 0x423d23
jmp 0x423d33
mov eax, dword [esi + 0x44]
mov ecx, dword [eax]
movzx eax, byte [edi]
test al, al
je 0x423fdb
inc edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x423fd0
mov byte [ecx], 0x3a
lea eax, [ecx + 2]
mov edx, dword [esi + 0x44]
mov dword [edx], eax
mov byte [ecx + 1], 0x20
mov edi, dword [esi + 0x6c]
mov edx, dword [edi]
test edx, edx
je 0x424020
mov ecx, dword [edi + 4]
mov edi, edx
and edi, 3
je 0x424024
mov dword [esi + 8], edx
xor ebx, ebx
movzx edx, byte [ecx]
cmp dl, 1
mov byte [eax + ebx], dl
sbb ecx, 0xffffffff
inc ebx
cmp edi, ebx
jne 0x424002
mov edi, dword [esi + 8]
mov edx, edi
sub edx, ebx
add eax, ebx
mov ebx, eax
jmp 0x424026
mov ebx, eax
jmp 0x424067
mov edi, edx
cmp edi, 4
mov edi, dword [esi + 0x6c]
jb 0x424067
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 1], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 2], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 3], bl
lea ebx, [eax + 4]
mov eax, ebx
add edx, 0xfffffffc
jne 0x42402e
lea eax, [ebx + 1]
mov ecx, dword [esi + 0x44]
mov dword [ecx], eax
mov byte [ebx], 0xa
mov eax, dword [esi + 0x50]
mov byte [eax], 1
push 0x2e0ec9bb
push dword [0x44885c]
call fcn.0043b390
add esp, 8
push dword [edi + 4]
call eax
mov eax, dword [esi + 0x88]
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x444a24]
mov edx, dword [esi + 0x70]
mov eax, dword [case.0x423ba2.39]
nop
nop
jmp eax
mov eax, dword [edx]
add eax, 4
jmp 0x423bb0
add ecx, 8
nop
mov ecx, dword [ecx]
mov eax, dword [case.0x4234b7.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x444944]
mov eax, dword [ecx]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x20]
mov ebx, dword [eax]
mov edx, dword [eax + 4]
mov edi, edx
sub edi, ebx
sar edi, 3
cmp edx, dword [eax + 8]
mov dword [esi + 0x40], ecx
mov dword [esi + 0x1c], edi
jne 0x42418f
mov dword [esi + 0x10], edx
lea eax, [edi + 1]
mov ecx, edi
shr edi, 1
add edi, ecx
cmp edi, eax
ja 0x424115
mov edi, eax
lea eax, [edi*8]
push eax
call fcn.004090e0
add esp, 4
mov dword [esi + 0x18], eax
test ebx, ebx
je 0x424170
mov edx, dword [esi + 0x10]
cmp ebx, edx
je 0x424167
mov dword [esi + 0xc], edi
xor eax, eax
mov edi, dword [esi + 0x18]
nop
nop
nop
nop
nop
mov ecx, dword [ebx + eax]
mov dword [edi + eax], ecx
mov ecx, dword [ebx + eax + 4]
mov dword [edi + eax + 4], ecx
mov dword [ebx + eax], 0
lea ecx, [ebx + eax]
add ecx, 8
add eax, 8
cmp ecx, edx
jne 0x424140
mov edx, ebx
mov edi, dword [esi + 0xc]
push edx
call fcn.004090f0
add esp, 4
mov ecx, dword [esi + 0x20]
mov ebx, dword [esi + 0x18]
mov dword [ecx], ebx
mov edx, dword [esi + 0x1c]
lea eax, [ebx + edx*8]
mov dword [esi + 0x10], eax
mov dword [ecx + 4], eax
lea eax, [ebx + edi*8]
mov edi, edx
mov edx, dword [esi + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x10], edx
mov dword [ebx + edi*8], 0
mov dword [esi + 0x18], ebx
mov dword [ebx + edi*8 + 4], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [eax + ebx], 0
jne 0x4241b0
push ecx
mov dword [esi + 0xc], ecx
call fcn.004090e0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x18]
mov dword [eax + edi*8], edx
mov ecx, dword [esi + 0xc]
shr ecx, 2
mov eax, dword [esi + 8]
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0xc]
mov ecx, eax
not ecx
and eax, 0xfffffffc
add edx, eax
mov edi, edx
add eax, dword [esi + 8]
mov dword [esi + 0x58], ecx
mov edx, ecx
or edx, 0xfffffffc
mov dword [esi + 0x68], edx
not edx
mov ecx, edx
shr ecx, 1
mov dword [esi + 0x64], eax
mov dword [esi + 0x54], eax
mov dword [esi + 0x3c], edi
mov eax, dword [esi + 0x54]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test dl, 1
je 0x424230
mov ecx, dword [esi + 0x58]
or ecx, 0xfffffffe
sub ecx, dword [esi + 0x68]
mov eax, dword [esi + 0x64]
movzx eax, byte [eax + ecx]
mov ecx, dword [esi + 0xc]
and ecx, 2
mov edx, dword [esi + 0x3c]
mov byte [edx + ecx], al
mov eax, dword [esi + 0xc]
cmp eax, 1
mov edx, dword [esi + 0x10]
je 0x424257
mov edi, eax
lea ecx, [eax - 1]
mov eax, 0xffffffff
cmp edi, 2
jne 0x424264
mov edi, dword [esi + 0x1c]
test cl, 1
jne 0x4242c0
jmp 0x4242e3
xor eax, eax
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x1c]
jmp 0x4242e8
mov dword [esi + 0xc], ecx
and ebx, 0xfffffffe
mov ecx, dword [esi + 8]
nop
nop
nop
mov edx, eax
shr edx, 8
xor al, byte [ecx]
movzx eax, al
mov eax, dword [eax*4 + 0x43f7d0]
mov edi, eax
and edi, edx
add edx, eax
add edi, edi
sub edx, edi
mov eax, edx
shr eax, 8
xor dl, byte [ecx + 1]
movzx edx, dl
mov edx, dword [edx*4 + 0x43f7d0]
mov edi, edx
and edi, eax
add eax, edx
add edi, edi
sub eax, edi
add ecx, 2
add ebx, 0xfffffffe
jne 0x424270
mov dword [esi + 8], ecx
mov edi, dword [esi + 0x1c]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
test cl, 1
je 0x4242e3
mov ecx, eax
shr ecx, 8
mov edx, dword [esi + 8]
xor al, byte [edx]
movzx eax, al
mov eax, dword [eax*4 + 0x43f7d0]
mov edx, eax
and edx, ecx
add ecx, eax
add edx, edx
sub ecx, edx
mov edx, dword [esi + 0x10]
mov eax, ecx
not eax
mov ecx, dword [esi + 0x40]
mov ebx, dword [esi + 0x18]
mov dword [ebx + edi*8 + 4], eax
add edx, 8
mov eax, dword [esi + 0x20]
mov dword [eax + 4], edx
add ecx, 4
mov eax, dword [case.0x4234b7.10]
jmp eax
jmp 0x4240c0
mov eax, dword [case.0x423617.10]
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x84]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444a4c]
mov ecx, edi
call fcn.004257f0
push edi
call fcn.004090f0
add esp, 4
mov eax, dword [esi + 0x74]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444a54]
mov eax, dword [esi + 0x74]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444a54]
jmp eax
lea eax, [esi + 0x50]
push eax
push edi
push dword [esi + 0x4c]
push 9
push ebx
push 0
call dword [0x448864]
mov dword [esi + 8], 0x2b8b2562
mov dword [esi + 0xc], 0x2f8d299f
mov dword [esi + 0x10], 0x339a2d9f
mov dword [esi + 0x14], 0x37303196
lea edx, [esi + 0x18]
mov dword [esi + 0x18], 0
mov dword [esi + 0x1b], 0
mov dword [esi + 0x54], 0
mov eax, dword [esi + 0x54]
cmp eax, 0x16
ja 0x42459c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x54]
mov eax, dword [esi + 0x54]
movzx eax, byte [esi + eax + 8]
mov edi, ecx
and edi, 0x2d631005
xor ecx, 0x2d631005
lea ecx, [ecx + edi*2]
mov edi, ecx
mov ebx, eax
not ebx
or ebx, ecx
and ecx, eax
xor edi, eax
add ebx, eax
lea eax, [edi + ecx*2]
add ecx, ebx
inc ecx
mov edi, eax
not edi
and edi, ecx
not ecx
and ecx, eax
sub ecx, edi
mov dword [esi + 0x118], ecx
mov eax, dword [esi + 0x118]
add al, 0xdd
mov ecx, dword [esi + 0x54]
mov byte [esi + ecx + 8], al
inc dword [esi + 0x54]
mov eax, dword [esi + 0x54]
cmp eax, 0x17
jb 0x424540
lea edi, [esi + 0x134]
lea eax, [esi + 8]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esi + 0x144]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esi + 8], 0x3bb015a
mov dword [esi + 0xc], 0x1fa11d8f
mov dword [esi + 0x10], 0x1baa19af
mov dword [esi + 0x14], 0x174915a6
mov dword [esi + 0x18], 0x13a611b5
mov dword [esi + 0x1c], 0x6fde6db1
mov dword [esi + 0x20], 0x6b6869e5
lea ebx, [esi + 0x24]
mov dword [esi + 0x24], 0
mov word [esi + 0x28], 0
mov dword [esi + 0x54], 0
mov eax, dword [esi + 0x54]
cmp eax, 0x21
ja 0x42465a
nop
nop
nop
mov ecx, dword [esi + 0x54]
mov eax, dword [esi + 0x54]
movzx eax, byte [esi + eax + 8]
mov edx, ecx
and edx, 0xdfda962b
xor ecx, 0x5fda962b
lea edx, [ecx + edx*2]
mov ecx, edx
and ecx, eax
not eax
or eax, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esi + 0x118], ecx
mov eax, dword [esi + 0x118]
add al, 0xd3
mov ecx, dword [esi + 0x54]
mov byte [esi + ecx + 8], al
inc dword [esi + 0x54]
mov eax, dword [esi + 0x54]
cmp eax, 0x22
jb 0x424610
lea edi, [esi + 0x118]
lea eax, [esi + 8]
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esi + 0x134]
xor ecx, ecx
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esi + 8], 0x36b0144
mov dword [esi + 0xc], 0x7650577
mov dword [esi + 0x10], 0xb780967
mov dword [esi + 0x14], 0xf5e0d68
mov dword [esi + 0x18], 0x13501144
lea eax, [esi + 0x1c]
mov word [esi + 0x1c], 0x1514
mov dword [esi + 0x1e], 0
mov dword [esi + 0x22], 0
mov word [esi + 0x26], 0
mov dword [esi + 0xf4], 0
mov ecx, dword [esi + 0xf4]
cmp ecx, 0x1f
ja 0x42471d
mov ecx, dword [esi + 0xf4]
mov edi, dword [esi + 0xf4]
movzx edi, byte [esi + edi + 8]
mov ebx, ecx
and ebx, 0xf3e25600
mov edx, ecx
xor edx, 0xf3e25600
and ecx, edi
lea edx, [edx + ebx*2]
add edx, edi
add ecx, ecx
sub edx, ecx
mov dword [esi + 0x54], edx
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 0xf4]
mov byte [esi + edx + 8], cl
inc dword [esi + 0xf4]
mov ecx, dword [esi + 0xf4]
cmp ecx, 0x20
jb 0x4246d0
lea ebx, [esi + 0xf4]
lea edx, [esi + 8]
mov ecx, 5
mov edi, ebx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0x108]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esi + 0x134]
mov dword [esi + 0x10c], eax
lea eax, [esi + 0x118]
mov dword [esi + 0x110], eax
mov dword [esi + 0x114], ebx
mov eax, dword [esi + 0x70]
lea ecx, [eax + 0x10]
mov dword [esi + 0xc0], ecx
mov ecx, dword [esi + 0x78]
lea edx, [ecx + 0x2c]
mov dword [esi + 0xe8], edx
mov edx, dword [esi + 0x74]
lea edi, [edx + 0x10]
mov dword [esi + 0xe4], edi
mov ebx, dword [esi + 0x4c]
mov edi, ebx
add edi, 2
mov dword [esi + 0x84], edi
add eax, 2
mov dword [esi + 0x70], eax
add ecx, 2
mov dword [esi + 0x78], ecx
add edx, 2
mov dword [esi + 0x74], edx
mov eax, dword [esi + 0x48]
add eax, 0x10
mov dword [esi + 0xbc], eax
mov eax, dword [esi + 0xac]
add eax, 0x2c
mov dword [esi + 0xe0], eax
mov eax, dword [esi + 0xa8]
lea ecx, [eax + 0x10]
mov dword [esi + 0xdc], ecx
add eax, 0x12
mov dword [esi + 0xd8], eax
mov dword [esi + 0x7c], 0
mov eax, dword [case.0x4239ff.9]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ecx, 3
setne al
jmp dword [eax*4 + 0x444aa4]
mov dword [esi + 0xf0], ecx
mov ecx, dword [esi + ecx*4 + 0x10c]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x424820
mov dword [esi + 0x44], ecx
mov dword [esi + 0xb0], eax
sar eax, 1
mov dword [esi + 0xb4], eax
mov dword [esi + 8], 0x4b8845fa
mov dword [esi + 0xc], 0x4fed49db
mov dword [esi + 0x10], 0x33e04de9
mov dword [esi + 0x14], 0x378531d2
mov dword [esi + 0x18], 0x3b9335a2
mov dword [esi + 0x1c], 0x3f9339ae
mov word [esi + 0x20], 0x3d3e
lea eax, [esi + 0x20]
mov dword [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x25
ja 0x4248d7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 4]
mov eax, dword [esi + 4]
movzx ecx, byte [esi + eax + 8]
lea eax, [edx + 0x35]
and eax, ecx
mov edi, 0x591cc3ca
sub edi, edx
or edi, ecx
not edi
add edi, ecx
sub edi, eax
mov dword [esi], edi
mov eax, dword [esi]
add al, 0x8d
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 8], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x26
jb 0x4248a0
lea edi, [esi + 0x54]
lea eax, [esi + 8]
mov ecx, 6
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esi + 0x20]
lea edi, [esi + 0x6c]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0xb4]
add eax, ecx
add eax, 0xe
mov ecx, eax
xor ecx, 0xfffffffe
and eax, 0xfffffffe
lea edi, [ecx + eax*2]
inc edi
jmp dword [0x444aac]
push edi
call fcn.004090f0
add esp, 4
mov eax, dword [esi + 0x8c]
mov dword [esi + 0x40], eax
mov dword [esi + 8], 0x32353437
lea eax, [esi + 0x20]
mov dword [eax - 0xd], 0
mov dword [eax - 0x10], 0
mov dword [eax - 0x14], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xe
ja 0x42499c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [esi + ecx + 8]
lea ecx, [eax - 0x25adae87]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
add ecx, edi
neg ecx
add eax, ecx
add eax, 0xda525178
mov dword [esi], eax
mov eax, dword [esi]
add al, 0xb1
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 8], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xf
jb 0x424960
mov ecx, dword [0x448868]
test ecx, ecx
je 0x4249c8
mov edx, dword [esi + 8]
xor edi, edi
mov eax, dword [0x44886c]
cmp dword [eax + edi*8], 0x11081610
je 0x4249c0
inc edi
cmp ecx, edi
jne 0x4249b0
jmp 0x4249c8
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
jne 0x4249ce
jmp dword [0x444b0c]
push dword [esi + 0x40]
push 1
push dword [0x448870]
push eax
call fcn.00439850
add esp, 0x10
jmp dword [0x444b0c]
xor ebx, ebx
jmp dword [0x444b0c]
push dword [esi + 0x88]
call fcn.004090f0
add esp, 4
mov eax, dword [case.0x423617.105]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
movzx eax, bl
mov edi, dword [esi + 0xac]
mov ebx, dword [esi + 0xa8]
jmp dword [eax*4 + 0x444b24]
mov dword [edi], 0x13641172
mov dword [edi + 4], 0x1f711d83
mov dword [edi + 8], 0x1b8c197d
mov dword [edi + 0xc], 0x779053a
mov dword [edi + 0x10], 0x391019a
mov dword [edi + 0x14], 0xf6f0d90
mov dword [edi + 0x18], 0xb670967
mov dword [edi + 0x1c], 0x37a0356e
mov dword [edi + 0x20], 0x33ae3159
mov dword [edi + 0x24], 0x3fa83d5d
mov dword [edi + 0x28], 0x3b5a3952
mov word [edi + 0x2c], 0x253a
mov dword [edi + 0x32], 0
mov dword [edi + 0x2e], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x35
ja 0x424acd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x1292b903]
add eax, 3
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0xeb
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x36
jb 0x424aa0
mov eax, edi
mov edi, dword [esi + 0xa4]
mov ecx, 0xb
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0xe0]
mov edi, dword [esi + 0xe8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0xb4]
lea ecx, [edx + eax]
add edx, eax
add edx, 0x17
lea eax, [ecx + ecx]
add eax, 0x2e
test edx, edx
jns 0x424b14
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ecx, dword [esi + 0xa0]
mov dword [ecx], eax
mov ecx, dword [esi + 0x4c]
movzx ecx, word [ecx]
test cx, cx
je 0x424b51
mov edx, dword [esi + 0x84]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424b40
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esi + 0x44]
movzx ecx, word [edx]
test cx, cx
je 0x424b81
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424b70
mov word [eax], 0
mov ecx, dword [esi + 0xa4]
movzx ecx, word [ecx]
test cx, cx
je 0x424bb1
mov edx, dword [esi + 0x78]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424ba0
mov word [eax], 0
mov dword [ebx], 0x36e012f
mov dword [ebx + 4], 0x7700561
mov dword [ebx + 8], 0xb66096d
mov dword [ebx + 0xc], 0xf6c0d68
mov word [ebx + 0x10], 0x1110
mov eax, dword [esi + 0xd8]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x17
ja 0x424c35
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + ecx]
add edx, 0x88ced100
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
mov ecx, dword [esi]
mov byte [ebx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x18
jb 0x424c00
mov eax, ebx
mov ecx, 4
mov edi, dword [esi + 0x9c]
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0xdc]
mov edi, dword [esi + 0xe4]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esi + 0xb0]
lea eax, [ecx + 0x12]
cmp ecx, 0xffffffed
jge 0x424c6f
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov ecx, dword [esi + 0x98]
mov dword [ecx], eax
mov edx, dword [esi + 0x44]
movzx ecx, word [edx]
test cx, cx
mov edi, dword [esi + 0xec]
je 0x424cb1
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424ca0
mov word [eax], 0
mov ecx, dword [esi + 0x9c]
movzx ecx, word [ecx]
test cx, cx
je 0x424ce1
mov edx, dword [esi + 0x74]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424cd0
mov word [eax], 0
mov dword [edi], 0xebd4d5e8
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0xb
ja 0x424d3d
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax - 0x4f1896e3]
add eax, 0x1d
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x35
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0xc
jb 0x424d10
mov eax, dword [esi + 0xa0]
mov ecx, edi
mov edi, dword [eax]
mov eax, dword [esi + 0x98]
mov ebx, dword [eax]
push 0
push 0
push 0
push 0xc00000
push ecx
push edi
push ebx
push dword [ebp + 8]
call fcn.0041b9e0
add esp, 0x20
mov ecx, dword [esi + 0x7c]
and cl, 1
or cl, al
mov dword [esi + 0x7c], ecx
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x444b2c]
push ebx
call fcn.004090f0
add esp, 4
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444b34]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444b34]
push edi
call fcn.004090f0
add esp, 4
mov eax, dword [case.0x423617.110]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [esi + 0xf0]
inc ecx
mov eax, dword [case.0x4239ff.9]
mov ebx, dword [esi + 0x4c]
jmp case.0x4239ff.6
mov eax, dword [esi + 0xb8]
mov byte [edi + eax], 0
push edi
call fcn.00401ee0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x444ad4]
mov dword [esi + 0xd4], edi
mov dword [esi + 0xd0], eax
push eax
call fcn.00402990
add esp, 4
mov dword [esi + 8], 0xb8bdaaaf
mov dword [esi + 0xc], 0x9b969c96
mov dword [esi + 0x10], 0x80948cd6
mov dword [esi + 0x14], 0x939e949e
mov dword [esi + 0x18], 0x808d8585
mov word [esi + 0x1c], 0x8c99
mov byte [esi + 0x1e], 0xf6
lea ecx, [esi + 0x20]
mov byte [ecx + 7], 0
mov dword [ecx + 3], 0
mov dword [ecx - 1], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1f
ja 0x424e9e
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edi, byte [esi + edx + 8]
lea edx, [ecx + 0x48329b5c]
mov ebx, edi
not ebx
or ebx, edx
and edx, edi
add edx, ebx
neg edx
add ecx, edx
add ecx, 0x48329b5b
mov dword [esi], ecx
mov ecx, dword [esi]
add cl, 0x7c
mov edx, dword [esi + 4]
mov byte [esi + edx + 8], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x20
jb 0x424e60
lea ecx, [esi + 8]
push ecx
push eax
call fcn.00402d70
add esp, 8
mov edx, 0xffffffff
mov ecx, 0xfffffffd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ecx, 3
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x424ec0
shr ecx, 2
mov edi, edx
mov dword [esi + 0x3c], edx
movzx edx, byte [eax + edx - 1]
cmp edx, 0x3d
je 0x424ee4
cmp edx, 0x2e
jne 0x424ee5
dec ecx
mov edx, dword [esi + 0x3c]
movzx edx, byte [eax + edx - 2]
cmp edx, 0x3d
mov dword [esi + 0x80], eax
je 0x424efd
cmp edx, 0x2e
jne 0x424efe
dec ecx
mov dword [esi + 0xcc], ecx
lea eax, [ecx + 1]
push eax
call fcn.004090e0
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x94]
mov dword [esi + 0x34], ecx
mov dword [eax], ecx
cmp dword [esi + 0x3c], 0
je 0x425026
xor ecx, ecx
mov edi, 2
jmp 0x424f50
mov ecx, dword [esi + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, edx
mov edi, eax
jae 0x425026
mov dword [esi + 0x40], ecx
mov ebx, dword [esi + 0x80]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.004195e0
add esp, 4
mov byte [esi + 0x38], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.004195e0
mov edx, dword [esi + 0x3c]
add esp, 4
movzx ecx, byte [esi + 0x38]
shl cl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, cl
mov ecx, dword [esi + 0x34]
mov ebx, dword [esi + 0x40]
mov byte [ecx + ebx], ah
lea ecx, [ebx + 1]
cmp edi, edx
jae 0x424f40
mov byte [esi + 0x38], al
mov eax, dword [esi + 0x80]
movzx eax, byte [eax + edi]
push eax
mov ebx, ecx
call fcn.004195e0
mov ecx, ebx
mov edx, dword [esi + 0x3c]
add esp, 4
cmp al, 0x40
je 0x424f40
movzx ecx, byte [esi + 0x38]
shl cl, 4
mov ah, al
shr ah, 2
and ah, 0xf
or ah, cl
mov ebx, dword [esi + 0x40]
lea ecx, [ebx + 2]
mov dword [esi + 0x38], ecx
mov ecx, dword [esi + 0x34]
mov byte [ecx + ebx + 1], ah
mov ebx, eax
lea eax, [edi + 1]
cmp eax, edx
jae 0x424f30
mov eax, dword [esi + 0x80]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.004195e0
mov edx, dword [esi + 0x3c]
add esp, 4
cmp al, 0x40
mov ecx, dword [esi + 0x38]
je 0x424f40
shl bl, 6
add al, bl
mov ecx, dword [esi + 0x34]
mov ebx, dword [esi + 0x40]
mov byte [ecx + ebx + 2], al
add ebx, 3
mov ecx, ebx
jmp 0x424f40
mov eax, dword [esi + 0xcc]
add eax, 0xfffffffb
mov edi, dword [esi + 0xc8]
mov dword [edi], eax
mov eax, dword [esi + 0x34]
add eax, 5
mov dword [edi + 4], eax
mov ebx, dword [esi + 0xc4]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x932a8d34
push dword [0x448874]
call fcn.0043b390
add esp, 8
push ebx
push 0
push 0
push 0
push 0
push 0
push edi
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444adc]
xor ebx, ebx
xor eax, eax
mov edi, dword [esi + 0x34]
test edi, edi
sete al
jmp dword [eax*4 + 0x444aec]
mov edx, dword [esi + 0x48]
mov dword [edx], 0xdb46d90f
mov dword [edx + 4], 0xd700d544
mov dword [edx + 8], 0xd35ad15c
mov dword [edx + 0xc], 0xcfcecd40
mov dword [edx + 0x10], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x13
ja 0x42511a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov ecx, dword [esi]
mov edx, dword [esi + 0x48]
movzx edx, byte [edx + ecx]
lea edi, [eax - 0x76ac795c]
lea ecx, [eax + edx]
add ecx, 0x895386a4
and edi, edx
add eax, 0xa4
and eax, edx
add eax, edi
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov edx, dword [esi + 0x48]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x84
mov ecx, dword [esi]
mov byte [edx + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x14
jb 0x4250d0
mov eax, edx
mov edi, dword [esi + 0x90]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0xbc]
mov edi, dword [esi + 0xc0]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esi + 0xb0]
lea eax, [ecx + 0x10]
cmp ecx, 0xffffffef
jge 0x425151
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x44]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x425191
mov eax, dword [esi + 0x44]
lea edx, [eax + 2]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425180
mov word [eax], 0
mov ecx, dword [esi + 0x90]
movzx ecx, word [ecx]
test cx, cx
je 0x4251c1
mov edx, dword [esi + 0x70]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4251b0
mov word [eax], 0
mov ecx, dword [ebp + 8]
push dword [ebx]
push dword [ebx + 4]
push edi
call fcn.00409840
mov ecx, edi
mov edi, ebx
mov ebx, eax
jmp dword [0x444ae4]
push ecx
call fcn.004090f0
add esp, 4
push 0x2e0ec9bb
push dword [0x44885c]
call fcn.0043b390
add esp, 8
push dword [edi + 4]
call eax
mov eax, dword [esi + 0x94]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x444aec]
jmp dword [0x444af4]
push edi
mov dword [esi + 0x34], edi
call fcn.004090f0
mov edi, dword [esi + 0x34]
add esp, 4
nop
nop
nop
nop
push edi
call fcn.004090f0
add esp, 4
jmp dword [0x444b00]
push dword [esi + 0xd0]
call fcn.00402f60
add esp, 4
mov edi, dword [esi + 0xd4]
jmp dword [0x444b04]
lea eax, [esi + 0xb8]
push 0
push eax
push dword [esi + 0x8c]
call fcn.0043c410
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444ac4]
mov edi, dword [esi + 0xb8]
lea eax, [edi + 1]
push eax
call fcn.004090e0
add esp, 4
push 0
push edi
mov edi, eax
push eax
push dword [esi + 0x8c]
call fcn.0043c520
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x444acc]
jmp dword [0x444b04]
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esi + 0x44]
movzx ecx, word [edx]
test cx, cx
je 0x4252e1
add edx, 2
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4252d0
mov word [eax], 0
movzx ecx, word [esi + 0x54]
test cx, cx
je 0x425311
lea edx, [esi + 0x56]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425300
mov word [eax], 0
lea eax, [esi + 0x8c]
push 0x60
push 3
push 0x120089
push eax
push dword [esi + 0x88]
call fcn.0043c050
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444abc]
mov eax, 0xffffffff
test edi, edi
js 0x42534c
lea eax, [edi + edi]
push eax
call fcn.004090e0
add esp, 4
movzx ecx, word [ebx]
test cx, cx
je 0x425381
mov edx, dword [esi + 0x84]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425370
mov word [eax], 0
mov eax, 0xffffffff
test edi, edi
js 0x425392
lea eax, [edi + edi]
push eax
call fcn.004090e0
add esp, 4
movzx ecx, word [ebx]
mov dword [esi + 0x88], eax
test cx, cx
je 0x4253d1
mov edx, dword [esi + 0x84]
mov eax, dword [esi + 0x88]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4253c0
mov word [eax], 0
jmp dword [0x444ab8]
mov eax, dword [case.0x424d7a.11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x444b5c]
push ebx
call fcn.004090f0
add esp, 4
mov eax, dword [esi + 0x7c]
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret