Function at 0x426410
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 0x42645a
jmp 0x426440
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 0x42645a
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 0x426473
jmp 0x4264ae
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 0x4264ae
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x74]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x8c]
jmp 0x4264bb
jmp 0x4264b0
mov eax, dword [esp + 0xc]
add eax, 0x39272
jmp 0x4264bb
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 0x42670a
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x64], 0
jne 0x42670a
jmp 0x42656d
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 0x4265c9
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x42661b
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4265ff
jmp 0x4265e5
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 0x4265ff
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 0x4265c9
jmp 0x42661d
jmp 0x42661f
jmp 0x426621
jmp 0x426623
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 0x426702
jmp 0x4266a7
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 0x4266be
jmp 0x4266da
jmp 0x4266c0
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 0x4266da
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 0x42669b
jmp 0x426704
jmp 0x426706
jmp 0x426708
jmp 0x42670a
jmp 0x42670c
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 0x42676b
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
setae al
test al, 1
jne 0x42677c
jmp 0x4267c0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4267a4
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 0x426769
jmp 0x4267c2
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 0x426854
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 0x426842
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.0042ef50
mov dword [esp + 0x3c], eax
jmp 0x426856
cmp dword [esp + 0x38], 0
setne al
test al, 1
jne 0x4268a1
jmp 0x426864
jmp 0x426866
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3c], 0
setne al
test al, 1
jne 0x42687a
jmp 0x426d30
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 0x426d30
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 0x426d30
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 0x4269bf
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4269a3
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 0x426971
jmp 0x4269c1
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 0
je 0x426a9c
jmp 0x4269d1
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 0x426a94
jmp 0x426a3b
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 0x426a52
jmp 0x426a6e
jmp 0x426a54
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 0x426a6e
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 0x426a2f
jmp 0x426a96
jmp 0x426a98
jmp 0x426a9a
jmp 0x426a9c
mov dword [esp + 0x10], 2
jmp 0x426aa6
cmp dword [esp + 0x10], 0
setne al
test al, 1
jne 0x426ab7
jmp 0x426bf1
jmp 0x426ab9
jmp 0x426abb
jmp 0x426abd
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 0x426b28
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
jb 0x426b85
jmp 0x426b34
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 0x426b4b
jmp 0x426b67
jmp 0x426b4d
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 0x426b67
jmp 0x426b69
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 0x426b28
jmp 0x426b87
jmp 0x426b89
jmp 0x426b8b
jmp 0x426b8d
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 0x426aa4
mov dword [esp + 0x10], 0
jmp 0x426bfb
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x3c]
setb al
test al, 1
jne 0x426c12
jmp 0x426d2e
jmp 0x426c14
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 0x426d0f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x426ce2
jmp 0x426cc8
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 0x426ce2
jmp 0x426ce4
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 0x426cac
jmp 0x426d11
jmp 0x426d13
jmp 0x426d15
jmp 0x426d17
mov eax, dword [esp + 0x10]
xor eax, 0xffffffff
and eax, 0xffffffff
xor ecx, ecx
sub ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x426bf9
jmp 0x426d68
cmp dword [esp + 0x3c], 0
jne 0x426d66
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.0042ef50
jmp 0x426d68
cmp dword [esp + 0x34], 0
je 0x427343
jmp 0x426d75
cmp dword [esp + 0x34], 4
sete al
test al, 1
jne 0x426d86
jmp 0x42704d
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 0
je 0x426e8b
jmp 0x426d96
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 0x426e14
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 8
setae al
test al, 1
jne 0x426e25
jmp 0x426e83
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x426e51
jmp 0x426e37
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 0x426e51
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 0x426e12
jmp 0x426e85
jmp 0x426e87
jmp 0x426e89
jmp 0x426e8b
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
and eax, 0x1000
cmp eax, 0
je 0x427048
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 0x427044
jmp 0x426ec0
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 0x42700c
jmp 0x426f7f
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 0x426f96
jmp 0x426fae
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 0x426f6f
jmp 0x42700e
jmp 0x427010
jmp 0x427012
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 0x426eb3
jmp 0x427046
jmp 0x427048
jmp 0x42733d
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 0x427137
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x427111
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 0x4270df
jmp 0x427139
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x44], 0
je 0x42720a
jmp 0x427149
jmp 0x42714b
jmp 0x42714d
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 0x427206
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4271de
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 0x4271ac
jmp 0x427208
jmp 0x42720a
jmp 0x42720c
mov dword [esp + 0x20], 2
jmp 0x427216
jmp 0x427218
cmp dword [esp + 0x20], 0
setne al
test al, 1
jne 0x427229
jmp 0x42733d
jmp 0x42722b
jmp 0x42722d
jmp 0x42722f
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 0x4272ee
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x30]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x34]
jae 0x4272c6
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 0x427294
jmp 0x4272f0
jmp 0x4272f2
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 0x427216
jmp 0x42733f
jmp 0x427341
jmp 0x427343
jmp 0x427345
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.0044f3d0
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.0044f3d0
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 0x42744f
jmp 0x42760e
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
je 0x4274cc
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 0x4274c7
mov eax, dword [esp + 0xc]
mov dword [eax + 0x6c], 0xffffffff
mov dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x4c], 1
jmp 0x427621
jmp 0x42760c
jmp 0x4274ce
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
add ecx, 0x39272
cmp eax, ecx
sete al
test al, 1
jne 0x4274ea
jmp 0x4275ee
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 0x42750c
jmp 0x427512
mov eax, dword [esp + 0x14]
jmp 0x42753e
jmp 0x427514
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 0x42753e
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.0044e8d0
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 0x4275d0
jmp 0x4275ea
jmp 0x4275d2
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 0x4275ea
jmp 0x4275ec
jmp 0x427606
jmp 0x4275f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x8c]
mov dword [ecx + 0x8c], eax
jmp 0x427606
jmp 0x427608
jmp 0x42760a
jmp 0x42760c
jmp 0x42760e
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