Function at 0x425810
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb0
mov dword [esp + 0x34], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 8]
and ecx, 0x80000
xor eax, eax
cmp ecx, 0
je 0x42585a
jmp 0x425840
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp + 0xc]
sub eax, dword [ecx + 0x40]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x24]
setbe al
jmp 0x42585a
and al, 1
movzx eax, al
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
sete al
test al, 1
jne 0x425873
jmp 0x4258ae
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x7c]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x8c]
mov edx, eax
xor edx, ecx
xor ecx, 0xffffffff
and eax, ecx
shl eax, 1
sub eax, edx
cmp eax, 0x14ccc
jb 0x4258ae
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x74]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x8c]
jmp 0x4258bb
jmp 0x4258b0
mov eax, dword [esp + 0xc]
add eax, 0x39272
jmp 0x4258bb
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
add eax, 0x14ccc
add eax, 0xfffffff0
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x34], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x58], 0
mov eax, dword [esp + 0xc]
mov dword [eax + 0x5c], 0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x2c]
movzx eax, byte [eax]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x38]
shr eax, cl
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x2c]
mov byte [ecx], al
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x38], 8
sete al
and al, 1
movzx eax, al
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x28]
mov esi, eax
or esi, 0
add esi, 0
xor eax, 0xffffffff
mov edi, eax
xor edi, 0
xor edi, 0xffffffff
or eax, 0
and eax, edi
sub eax, esi
add edx, eax
mov dword [ecx + 0x28], edx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
and eax, 0x1000
cmp eax, 0
je 0x425b0a
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x64], 0
jne 0x425b0a
jmp 0x42596d
mov dword [esp + 0xac], pe_nt_image_headers32
mov dword [esp + 0xa8], 8
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
or eax, dword [ecx + 0x48]
mov dword [ecx + 0x48], eax
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x44]
xor esi, esi
sub esi, edx
xor edx, edx
sub edx, ecx
mov ecx, esi
and ecx, edx
or esi, edx
add ecx, esi
xor ecx, 0xffffffff
add ecx, 0
add ecx, 1
mov dword [eax + 0x44], ecx
jmp 0x4259c9
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x425a1b
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4259ff
jmp 0x4259e5
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x4259ff
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xfffffff8
mov dword [eax + 0x44], ecx
jmp 0x4259c9
jmp 0x425a1d
jmp 0x425a1f
jmp 0x425a21
jmp 0x425a23
mov dword [esp + 0xa4], 1
mov dword [esp + 0xa0], 8
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl edx, cl
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x48]
mov ecx, edx
and ecx, esi
mov edi, ecx
xor edi, 0xffffffff
xor edi, 0xffffffff
and edi, 0xffffffff
shl edi, 1
sub edi, 0xffffffff
sub ecx, edi
xor edi, edi
sub edi, esi
xor esi, esi
sub esi, edx
add edi, esi
xor edx, edx
sub edx, edi
mov esi, edx
and esi, 1
shl esi, 1
xor edx, 1
add edx, esi
add edx, ecx
mov dword [eax + 0x48], edx
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x425b02
jmp 0x425aa7
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
setb al
test al, 1
jne 0x425abe
jmp 0x425ada
jmp 0x425ac0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x425ada
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xed80d4e9
sub ecx, 8
sub ecx, 0xed80d4e9
mov dword [eax + 0x44], ecx
jmp 0x425a9b
jmp 0x425b04
jmp 0x425b06
jmp 0x425b08
jmp 0x425b0a
jmp 0x425b0c
cmp dword [esp + 0x34], 4
sete al
and al, 1
movzx eax, al
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], 1
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x48]
mov esi, edx
and esi, eax
xor edx, eax
or esi, edx
mov dword [ecx + 0x48], esi
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x44]
and eax, 0xffffffff
xor esi, esi
sub esi, eax
sub edx, esi
mov dword [ecx + 0x44], edx
jmp 0x425b6b
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
setae al
test al, 1
jne 0x425b7c
jmp 0x425bc0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x425ba4
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
sub ecx, 8
mov dword [eax + 0x44], ecx
jmp 0x425b69
jmp 0x425bc2
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x44]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x38], 0
jne 0x425c54
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 8]
or ecx, ecx
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x6df15aec
and ecx, 0x920ea513
or eax, ecx
xor eax, 0x920ea513
xor eax, 0xffffffff
and eax, 0xffffffff
or eax, 0
mov ecx, eax
and ecx, 0x40000
xor ecx, 0xffffffff
xor eax, 0xffffffff
or eax, 0xfffbffff
xor ecx, 0xffffffff
xor eax, 0xffffffff
or ecx, eax
mov al, 1
cmp ecx, 0
jne 0x425c42
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3c], 0x30
setb al
and al, 1
movzx edx, al
mov ecx, dword [esp + 0xc]
call fcn.0042e350
mov dword [esp + 0x3c], eax
jmp 0x425c56
cmp dword [esp + 0x38], 0
setne al
test al, 1
jne 0x425ca1
jmp 0x425c64
jmp 0x425c66
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3c], 0
setne al
test al, 1
jne 0x425c7a
jmp 0x426130
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0x30]
sub eax, 0x34d13b06
sub eax, ecx
add eax, 0x34d13b06
add eax, 1
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x3c]
jb 0x426130
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1c]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x40]
mov edx, eax
and edx, ecx
shl edx, 1
mov esi, eax
add esi, ecx
sub esi, edx
xor ecx, 0xffffffff
and eax, ecx
shl eax, 1
xor esi, 0xffffffff
add eax, esi
add eax, 1
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x24]
ja 0x426130
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x44], eax
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 2
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl edx, cl
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
mov esi, edx
and esi, ecx
or esi, esi
xor esi, 0xffffffff
xor esi, 0xffffffff
and esi, 0xffffffff
or esi, 0
xor esi, 0xffffffff
add ecx, edx
add ecx, 0x67e4bd98
add ecx, 1
sub ecx, 0x67e4bd98
add ecx, esi
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x44]
xor esi, esi
sub esi, edx
xor edx, edx
sub edx, eax
add esi, edx
xor eax, eax
sub eax, esi
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x425dbf
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x425da3
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xfffffff8
mov dword [eax + 0x44], ecx
jmp 0x425d71
jmp 0x425dc1
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 0
je 0x425e9c
jmp 0x425dd1
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x44]
mov ecx, eax
xor ecx, 0xd7429e78
xor eax, 0xffffffff
and eax, 0xd7429e78
shl eax, 1
sub eax, ecx
sub eax, 0xd7429e70
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
or eax, dword [ecx + 0x48]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x425e94
jmp 0x425e3b
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
setb al
test al, 1
jne 0x425e52
jmp 0x425e6e
jmp 0x425e54
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x425e6e
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
mov edx, ecx
xor edx, 0xffffffff
and edx, 8
and ecx, 0xfffffff7
sub ecx, edx
mov dword [eax + 0x44], ecx
jmp 0x425e2f
jmp 0x425e96
jmp 0x425e98
jmp 0x425e9a
jmp 0x425e9c
mov dword [esp + 0x10], 2
jmp 0x425ea6
cmp dword [esp + 0x10], 0
setne al
test al, 1
jne 0x425eb7
jmp 0x425ff1
jmp 0x425eb9
jmp 0x425ebb
jmp 0x425ebd
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x3c]
mov edx, eax
xor edx, 0xffff
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and ecx, 0xffffffff
xor ecx, 0xffffffff
and ecx, 0xffffffff
xor ecx, 0xffffffff
or eax, 0xffff
and eax, ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], 0x10
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
or eax, dword [ecx + 0x48]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
jmp 0x425f28
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x425f85
jmp 0x425f34
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
setb al
test al, 1
jne 0x425f4b
jmp 0x425f67
jmp 0x425f4d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x425f67
jmp 0x425f69
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
sub ecx, 8
mov dword [eax + 0x44], ecx
jmp 0x425f28
jmp 0x425f87
jmp 0x425f89
jmp 0x425f8b
jmp 0x425f8d
mov eax, dword [esp + 0x10]
mov ecx, eax
and ecx, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
and edx, 2
mov esi, ecx
and esi, 0xfffffffd
imul esi, edx
mov edx, ecx
and edx, 2
or ecx, 2
imul ecx, edx
add ecx, esi
mov edx, eax
and edx, 0xffffffff
shl edx, 1
add eax, 0xffffffff
sub eax, edx
add eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x3c]
mov edx, ecx
xor edx, 0xffff
xor edx, 0xffffffff
and edx, 0xffff
shl edx, 1
sub edx, 0xffff
sub ecx, edx
mov dword [eax + 0x3c], ecx
jmp 0x425ea4
mov dword [esp + 0x10], 0
jmp 0x425ffb
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x3c]
setb al
test al, 1
jne 0x426012
jmp 0x42612e
jmp 0x426014
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x40]
mov edx, dword [esp + 0x10]
xor edx, 0xffffffff
sub edx, 0xffffffff
mov esi, ecx
xor esi, 0xffffffff
and esi, edx
xor edx, 0xffffffff
and ecx, edx
sub ecx, esi
and ecx, 0x7fff
movzx eax, byte [eax + ecx + 0x90]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], 8
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl edx, cl
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 0x48]
mov ecx, ebx
xor ecx, 0xffffffff
mov edi, edx
xor edi, 0xffffffff
mov esi, ecx
and esi, 0x90109f60
and ebx, 0x6fef609f
mov ebp, edi
and ebp, 0x90109f60
and edx, 0x6fef609f
or esi, ebx
or ebp, edx
xor esi, ebp
or ecx, edi
xor ecx, 0xffffffff
and ecx, 0xffffffff
or esi, ecx
mov dword [eax + 0x48], esi
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x42610f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4260e2
jmp 0x4260c8
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x4260e2
jmp 0x4260e4
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
sub ecx, 0x667cd61
add ecx, 0xfffffff7
add ecx, 1
add ecx, 0x667cd61
mov dword [eax + 0x44], ecx
jmp 0x4260ac
jmp 0x426111
jmp 0x426113
jmp 0x426115
jmp 0x426117
mov eax, dword [esp + 0x10]
xor eax, 0xffffffff
and eax, 0xffffffff
xor ecx, ecx
sub ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x425ff9
jmp 0x426168
cmp dword [esp + 0x3c], 0
jne 0x426166
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x44], eax
mov ecx, dword [esp + 0xc]
mov edx, 1
call fcn.0042e350
jmp 0x426168
cmp dword [esp + 0x34], 0
je 0x426743
jmp 0x426175
cmp dword [esp + 0x34], 4
sete al
test al, 1
jne 0x426186
jmp 0x42644d
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 0
je 0x42628b
jmp 0x426196
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0xc]
mov ecx, 8
sub ecx, dword [eax + 0x44]
mov dword [esp + 0x70], ecx
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl esi, cl
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x48]
mov ecx, edx
and ecx, esi
mov edi, edx
xor edi, esi
or ecx, edi
xor ecx, 0xffffffff
or edx, esi
mov esi, edx
xor esi, 0xffffffff
xor esi, 0xffffffff
and esi, 0xffffffff
shl esi, 1
sub esi, 0xffffffff
sub edx, esi
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, ecx
xor ecx, 0xffffffff
mov esi, edx
xor esi, 0xffffffff
xor edx, 0xffffffff
and esi, edx
or ecx, esi
xor ecx, 0xffffffff
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
jmp 0x426214
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
setae al
test al, 1
jne 0x426225
jmp 0x426283
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x426251
jmp 0x426237
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
jmp 0x426251
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
mov edx, ecx
xor edx, 8
and ecx, 0xfffffff7
shl ecx, 1
sub ecx, 0xfe16b0b2
sub ecx, edx
add ecx, 0xfe16b0b2
mov dword [eax + 0x44], ecx
jmp 0x426212
jmp 0x426285
jmp 0x426287
jmp 0x426289
jmp 0x42628b
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
and eax, 0x1000
cmp eax, 0
je 0x426448
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 0
cmp dword [esp + 0x28], 4
jae 0x426444
jmp 0x4262c0
mov ecx, dword [esp + 0x24]
shr ecx, 0x18
xor edx, edx
sub edx, ecx
add edx, 0xffffffff
xor eax, eax
sub eax, edx
xor ecx, 0xffffffff
mov esi, ecx
xor esi, 0xffffffff
mov edx, esi
and edx, 0x70f3fb3d
and ecx, 0x8f0c04c2
or edx, ecx
xor edx, 0x70f3fbc2
or esi, 0xffffff00
xor esi, 0xffffffff
and esi, 0xffffffff
or edx, esi
add edx, eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], 8
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl edx, cl
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
mov edi, edx
xor edi, 0xffffffff
mov esi, ecx
and esi, edi
xor esi, 0xffffffff
mov ebx, ecx
xor ebx, 0xffffffff
xor edi, 0xffffffff
or ebx, edi
xor esi, 0xffffffff
xor ebx, 0xffffffff
or esi, ebx
mov edi, ecx
xor edi, edx
sub ecx, 0x9550e22f
add ecx, edi
add ecx, 0x9550e22f
add ecx, 0xb69f69ae
sub ecx, esi
sub ecx, 0xb69f69ae
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x42640c
jmp 0x42637f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
setb al
test al, 1
jne 0x426396
jmp 0x4263ae
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x44]
mov ecx, edx
xor ecx, 0xffffffff
and ecx, 0x29207f5e
mov esi, edx
and esi, 0xd6df80a1
or ecx, esi
xor ecx, 0xd6df80a1
and ecx, 8
mov esi, edx
and esi, 0xfffffff7
xor esi, 0xffffffff
xor edx, 0xffffffff
or edx, 8
xor esi, 0xffffffff
xor edx, 0xffffffff
or esi, edx
mov edx, esi
xor edx, 0xffffffff
and edx, ecx
xor ecx, 0xffffffff
and esi, ecx
sub esi, edx
mov dword [eax + 0x44], esi
jmp 0x42636f
jmp 0x42640e
jmp 0x426410
jmp 0x426412
mov eax, dword [esp + 0x24]
shl eax, 8
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
mov ecx, eax
xor ecx, 0x3a3a5604
and eax, 0xc5c5a9fb
shl eax, 1
sub eax, ecx
add eax, 1
add eax, 0x3a3a5604
mov dword [esp + 0x28], eax
jmp 0x4262b3
jmp 0x426446
jmp 0x426448
jmp 0x42673d
mov dword [esp + 0x1c], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 3
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl edx, cl
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
mov edi, edx
and edi, edi
xor edi, 0xffffffff
and edi, 0xffffffff
xor edi, 0xffffffff
and edi, 0xffffffff
xor edi, 0xffffffff
mov esi, ecx
and esi, edi
mov edi, ecx
xor edi, 0xffffffff
and edi, 0x125d4f10
mov ebx, ecx
and ebx, 0xeda2b0ef
mov ebp, edx
xor ebp, 0xffffffff
and ebp, 0x125d4f10
and edx, 0xeda2b0ef
or edi, ebx
or ebp, edx
xor edi, ebp
xor edx, edx
sub edx, edi
sub ecx, edx
sub ecx, 0x2d97a33a
sub ecx, esi
add ecx, 0x2d97a33a
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x426537
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x426511
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
mov edx, ecx
xor edx, 0xffffffff
and edx, 8
and ecx, 0xfffffff7
sub ecx, edx
mov dword [eax + 0x44], ecx
jmp 0x4264df
jmp 0x426539
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 0
je 0x42660a
jmp 0x426549
jmp 0x42654b
jmp 0x42654d
mov dword [esp + 0x5c], 0
mov eax, dword [esp + 0xc]
mov ecx, 8
sub ecx, dword [eax + 0x44]
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
shl edx, cl
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x48]
mov ecx, esi
and ecx, edx
xor esi, edx
mov edx, ecx
xor edx, 0xffffffff
mov edi, esi
xor edi, 0xffffffff
and edx, edi
xor ecx, 0xffffffff
xor esi, 0xffffffff
and ecx, esi
xor edx, 0xffffffff
xor ecx, 0xffffffff
and edx, ecx
mov dword [eax + 0x48], edx
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x426606
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4265de
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
sub ecx, 0x1c9f60fd
sub ecx, 8
add ecx, 0x1c9f60fd
mov dword [eax + 0x44], ecx
jmp 0x4265ac
jmp 0x426608
jmp 0x42660a
jmp 0x42660c
mov dword [esp + 0x20], 2
jmp 0x426616
jmp 0x426618
cmp dword [esp + 0x20], 0
setne al
test al, 1
jne 0x426629
jmp 0x42673d
jmp 0x42662b
jmp 0x42662d
jmp 0x42662f
mov eax, dword [esp + 0x1c]
mov ecx, eax
and ecx, 0xffff
xor ecx, 0xffffffff
and eax, 0xffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
xor eax, 0xffffffff
or ecx, eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], 0x10
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x44]
shl eax, cl
mov ecx, dword [esp + 0xc]
or eax, dword [ecx + 0x48]
mov dword [ecx + 0x48], eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
xor edx, 0xffffffff
xor edx, 0xffffffff
and edx, 0xffffffff
xor esi, esi
sub esi, edx
xor esi, 0xffffffff
add ecx, esi
add ecx, 1
mov dword [eax + 0x44], ecx
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x4266ee
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4266c6
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x30]
mov esi, edx
add esi, 1
mov dword [ecx + 0x30], esi
mov byte [edx], al
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x48]
shr ecx, 8
mov dword [eax + 0x48], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x44]
add ecx, 0xeaebed1c
sub ecx, 8
sub ecx, 0xeaebed1c
mov dword [eax + 0x44], ecx
jmp 0x426694
jmp 0x4266f0
jmp 0x4266f2
mov eax, dword [esp + 0x20]
mov ecx, eax
and ecx, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
and edx, 2
mov esi, ecx
and esi, 0xfffffffd
imul esi, edx
mov edx, ecx
and edx, 2
or ecx, 2
imul ecx, edx
add ecx, esi
xor eax, 0xffffffff
add eax, 0xd9e93ed3
add eax, ecx
sub eax, 0xd9e93ed3
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
xor eax, 0xffff
mov dword [esp + 0x1c], eax
jmp 0x426616
jmp 0x42673f
jmp 0x426741
jmp 0x426743
jmp 0x426745
mov eax, dword [esp + 0xc]
add eax, 0x8192
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x240
call fcn.0044e7d0
mov eax, dword [esp + 0xc]
add eax, 0x8192
add eax, 0x240
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x40
call fcn.0044e7d0
mov eax, dword [esp + 0xc]
add eax, 0x9272
add eax, 1
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0xc]
add eax, 0x9272
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0xc]
mov dword [eax + 0x38], 8
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x3c]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x40]
xor eax, 0xffffffff
xor eax, 0xffffffff
xor esi, esi
sub esi, eax
sub edx, esi
mov dword [ecx + 0x40], edx
mov eax, dword [esp + 0xc]
mov dword [eax + 0x3c], 0
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 0x64]
mov ecx, esi
and ecx, 1
and ecx, 0xfffffffd
shl ecx, 1
add ecx, 0
mov edx, esi
xor edx, 0xffffffff
and edx, 0x3bca2606
and esi, 0xc435d9f9
or edx, esi
xor edx, 0x3bca2607
mov esi, edx
and esi, ecx
shl esi, 1
xor edx, ecx
add edx, esi
mov dword [eax + 0x64], edx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0x2c]
add eax, 0x2f02cd17
add eax, 1
sub eax, ecx
add eax, 0xd0fd32e8
mov dword [esp + 0x14], eax
cmp eax, 0
setne al
test al, 1
jne 0x42684f
jmp 0x426a0e
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
je 0x4268cc
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x84]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x70]
xor ecx, 0xffffffff
add eax, ecx
add eax, 1
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x78]
mov dword [ecx], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
add esi, 0x39272
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call eax
cmp eax, 0
jne 0x4268c7
mov eax, dword [esp + 0xc]
mov dword [eax + 0x6c], 0xffffffff
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x4c], 1
jmp 0x426a21
jmp 0x426a0c
jmp 0x4268ce
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
add ecx, 0x39272
cmp eax, ecx
sete al
test al, 1
jne 0x4268ea
jmp 0x4269ee
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x7c]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xc]
sub ecx, dword [edx + 0x8c]
cmp eax, ecx
setb al
test al, 1
jne 0x42690c
jmp 0x426912
mov eax, dword [esp + 0x14]
jmp 0x42693e
jmp 0x426914
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x7c]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x8c]
xor edx, edx
sub edx, ecx
add edx, 0
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
jmp 0x42693e
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x74]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x8c]
mov ecx, dword [esp + 0xc]
add ecx, 0x39272
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0044dcd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x8c]
add edx, 0x8e2392e1
add edx, eax
sub edx, 0x8e2392e1
mov dword [ecx + 0x8c], edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov esi, eax
xor esi, 0xffffffff
mov edx, esi
xor edx, 0xffffffff
mov edi, ecx
xor edi, 0xffffffff
or edx, edi
and esi, ecx
xor esi, 0xffffffff
xor edx, 0xffffffff
xor esi, 0xffffffff
or edx, esi
xor ecx, 0xffffffff
and eax, ecx
sub eax, edx
mov dword [esp + 0x14], eax
cmp eax, 0
setne al
test al, 1
jne 0x4269d0
jmp 0x4269ea
jmp 0x4269d2
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x58], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x5c], eax
jmp 0x4269ea
jmp 0x4269ec
jmp 0x426a06
jmp 0x4269f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x8c]
mov dword [ecx + 0x8c], eax
jmp 0x426a06
jmp 0x426a08
jmp 0x426a0a
jmp 0x426a0c
jmp 0x426a0e
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 1
mov eax, dword [esp + 0x48]
add esp, 0xb0
pop esi
pop edi
pop ebx
pop ebp
ret