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

Disassembly:
push ebx
push edi
push esi
sub esp, 0xf4
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x10c]
mov edx, dword [esp + 0x108]
mov esi, dword [esp + 0x104]
mov dword [esp + 0xec], eax
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe0], esi
mov eax, dword [0x49f74c]
imul eax, eax, 0x48d703c9
and eax, 0x19b27e71
cmp eax, 0x87b9cb53
jne 0x43d61b
mov eax, dword [0x49e8ac]
add eax, 0x69eb1f84
mov dword [0x49e8ac], eax
mov eax, 0x3323f17e
mov ecx, dword [0x49e624]
add ecx, 0xfb579451
mov dword [0x49e624], ecx
mov dx, word [0x4a060a]
movsx ecx, dx
cmp eax, ecx
jl 0x43d653
mov eax, dword [0x49deb0]
and eax, 0xdfefeebe
mov dword [0x49deb0], eax
xor eax, eax
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x6c], eax
call fcn.00401040
cmp eax, 0
jne 0x43d689
mov dword [esp + 0xf0], 0xfffffff4
jmp 0x43eeec
mov eax, dword [0x49f5bc]
not eax
mov cx, word [0x49fdfe]
mov dx, cx
and edx, eax
mov cx, dx
mov word [0x49fdfe], cx
mov eax, esp
lea edx, [esp + 0x90]
mov dword [eax + 0x10], edx
lea edx, [esp + 0x9c]
mov dword [eax + 0xc], edx
lea edx, [esp + 0xa8]
mov dword [eax + 8], edx
lea edx, [esp + 0xb4]
mov dword [eax + 4], edx
lea edx, [esp + 0xc0]
mov dword [eax], edx
mov dword [eax + 0x14], 0
call fcn.00414fc0
mov cx, word [0x49ffc8]
movsx eax, cx
imul eax, eax, 0x53708d00
mov edx, dword [0x49ee6c]
and edx, eax
mov dword [0x49ee6c], edx
mov eax, dword [esp + 0xec]
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.004414a0
cmp eax, 0
jge 0x43d811
mov ax, word [0x4a03c6]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x4a03c6], ax
movsx ecx, ax
cmp ecx, 0xe744b83c
jl 0x43d75c
mov eax, dword [0x49dd80]
mov ecx, dword [0x49f868]
imul ecx, eax
mov dword [0x49f868], ecx
cmp dword [esp + 0xe0], 0
je 0x43d7a1
xor eax, eax
mov ecx, dword [esp + 0xe0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x68], eax
call fcn.00419c10
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43d79c
jmp 0x43ee6c
jmp 0x43d7a1
mov eax, dword [0x49f360]
or eax, 0xb6f49f0e
mov dword [0x49f360], eax
cmp dword [esp + 0xe4], 0
je 0x43d7f2
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0041dec0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43d7ed
jmp 0x43ee6c
jmp 0x43d7f2
mov eax, dword [0x49eb7c]
add eax, 0x949aad65
mov dword [0x49eb7c], eax
mov dword [esp + 0xf0], 0
jmp 0x43eeec
lea eax, [esp + 0xc0]
mov ecx, dword [0x49e984]
and ecx, 0xe197069c
xor ecx, 0xc918aa0
mov edx, dword [0x49e2d8]
imul edx, ecx
mov dword [0x49e2d8], edx
mov ecx, dword [esp + 0xe8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0041dec0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43d861
jmp 0x43ee6c
lea eax, [esp + 0xb4]
mov cx, word [0x4a085a]
mov dx, cx
add edx, 0x61f5733c
mov cx, dx
mov word [0x4a085a], cx
mov edx, dword [esp + 0xec]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0041dec0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43d8aa
jmp 0x43ee6c
mov eax, dword [0x49e2dc]
add eax, 0x290c0897
mov dword [0x49e2dc], eax
mov dword [esp + 0xb4], 1
mov dword [esp + 0xc0], 1
mov eax, dword [0x49f4e0]
dec eax
mov dword [0x49f4e0], eax
mov ecx, dword [0x49f65c]
inc ecx
mov dword [0x49f65c], ecx
sub eax, ecx
xor eax, 0x4784a27b
mov ecx, dword [0x49eca0]
mov edx, dword [0x49f75c]
sar edx, 6
sub ecx, edx
and ecx, 0xf37370dd
cmp eax, ecx
jg 0x43d93b
mov ax, word [0x49fd02]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x49fd02], ax
movsx ecx, ax
mov ax, word [0x4a00ac]
movsx edx, ax
imul ecx, edx
imul ecx, ecx, 0x80b630c
mov dword [0x49e7c8], ecx
lea eax, [esp + 0xa8]
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx + 4]
add ecx, 2
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043a760
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43d970
jmp 0x43ee6c
lea eax, [esp + 0xa8]
xor ecx, ecx
mov edx, dword [0x49df38]
and edx, 0x472d98f1
mov esi, dword [0x49e7fc]
add esi, edx
mov dword [0x49e7fc], esi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x64], ecx
call fcn.00419c10
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43d9bc
jmp 0x43ee6c
lea eax, [esp + 0x9c]
mov ecx, 2
mov dx, word [0x4a02fc]
movsx esi, dx
mov dword [0x49eb40], esi
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x60], ecx
call fcn.0043a760
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43da01
jmp 0x43ee6c
lea eax, [esp + 0x90]
mov ecx, 3
mov dword [0x49eed0], 0xf2d89ed2
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x5c], ecx
call fcn.0043a760
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43da40
jmp 0x43ee6c
mov eax, 0x4102c6e8
mov ecx, dword [0x49dca4]
or ecx, 0x79cc04ca
mov dword [0x49dca4], ecx
mov ecx, esp
lea edx, [esp + 0xb4]
mov dword [ecx], edx
mov dword [esp + 0x58], eax
call fcn.0043f0b0
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x1b
mov edx, eax
add edx, ecx
and edx, 0xffffffe0
sub eax, edx
mov dword [esp + 0xcc], eax
mov si, word [0x4a04ae]
mov ax, si
inc eax
mov di, ax
mov word [0x4a04ae], di
movsx eax, si
imul eax, eax, 0x2dd261a8
mov ecx, dword [esp + 0x58]
cmp ecx, eax
je 0x43dad1
mov eax, dword [0x49f0d8]
mov ecx, eax
inc ecx
mov dword [0x49f0d8], ecx
mov ecx, dword [0x49db24]
and eax, ecx
mov ecx, dword [0x49dc30]
xor ecx, eax
mov dword [0x49dc30], ecx
cmp dword [esp + 0xcc], 0x1f
jge 0x43dc32
mov eax, 0x1d5a9072
mov cx, word [0x4a0162]
movsx edx, cx
xor edx, 0xc530171c
mov esi, dword [0x49da28]
imul esi, edx
mov dword [0x49da28], esi
mov edx, dword [esp + 0xcc]
mov esi, 0x1f
sub esi, edx
mov dword [esp + 0xcc], esi
mov edx, dword [0x49f0ac]
inc edx
mov dword [0x49f0ac], edx
cmp eax, edx
jl 0x43db57
mov ax, word [0x4a098c]
movsx ecx, ax
cmp ecx, 0x4796c5db
je 0x43db52
mov eax, dword [0x49eac0]
imul eax, eax, 0xbbdffe7d
mov dword [0x49eac0], eax
jmp 0x43db8f
mov ax, word [0x49fb72]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x49fb72], ax
imul ecx, ecx, 0xd43abe75
mov edx, dword [0x49e124]
shl edx, 5
and ecx, edx
mov ax, word [0x4a010c]
mov dx, ax
sub edx, ecx
mov ax, dx
mov word [0x4a010c], ax
lea eax, [esp + 0xc0]
mov ecx, dword [esp + 0xcc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a2a0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43dbbe
jmp 0x43ee6c
lea eax, [esp + 0xb4]
mov ecx, dword [0x49ee44]
shl ecx, 2
and ecx, 0xa88fe20
xor ecx, 0x6679b73b
mov edx, dword [0x49f614]
add edx, ecx
mov dword [0x49f614], edx
mov ecx, dword [esp + 0xcc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a2a0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43dc10
jmp 0x43ee6c
mov eax, dword [0x49ef94]
and eax, 0xd8e8e774
xor eax, 0x4fb4e04a
mov ecx, dword [0x49e464]
sub ecx, eax
mov dword [0x49e464], ecx
jmp 0x43dc3d
mov dword [esp + 0xcc], 0
mov eax, dword [0x49e62c]
add eax, 0x1129c834
mov dword [0x49e62c], eax
mov eax, dword [esp + 0xc4]
dec eax
mov dword [esp + 0xd4], eax
mov eax, dword [0x49e240]
shl eax, 3
mov cx, word [0x49faba]
movsx edx, cx
sar edx, 3
or eax, edx
mov edx, dword [0x49f61c]
xor edx, eax
mov dword [0x49f61c], edx
mov eax, dword [esp + 0xb8]
dec eax
mov dword [esp + 0xd0], eax
mov eax, dword [0x49f608]
add eax, 0x805001
mov dword [0x49f608], eax
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0xd0]
sub eax, edx
shl eax, 5
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0xb4]
mov dword [edx], eax
call fcn.0040a2a0
mov edx, dword [0x49f048]
imul edx, edx, 0x5b60d5e0
mov dword [0x49f048], edx
mov dword [esp + 0x54], eax
lea eax, [esp + 0xc0]
lea ecx, [esp + 0xb4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0042f320
cmp eax, 0
jl 0x43dda9
mov eax, 0xce1b5b4d
mov ecx, dword [0x49da8c]
or ecx, 0xcfd18804
mov dword [0x49da8c], ecx
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xd0]
sub ecx, edx
mov edx, dword [esp + 0xb0]
mov esi, dword [edx + ecx*4]
inc esi
mov dword [edx + ecx*4], esi
mov ecx, dword [0x49f6f8]
shl ecx, 2
imul ecx, ecx, 0xb708866e
cmp eax, ecx
jge 0x43dd69
mov ax, word [0x4a0970]
movsx ecx, ax
shl ecx, 5
mov edx, dword [0x49ebd8]
xor ecx, edx
xor ecx, 0x2d591b60
mov dword [0x49ebd8], ecx
mov eax, esp
lea ecx, [esp + 0xb4]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc0]
mov dword [eax + 4], ecx
mov dword [eax], ecx
call fcn.0040c160
mov ecx, dword [0x49e36c]
mov edx, dword [0x49f910]
and ecx, edx
and ecx, 0x50048088
mov dword [0x49f910], ecx
mov dword [esp + 0x50], eax
jmp 0x43dcda
mov eax, 0x68560703
mov ecx, dword [0x49e080]
sar ecx, 7
and ecx, 0xe3e4f5bf
or ecx, 0x7a8c798a
cmp eax, ecx
je 0x43ddfb
mov eax, 0xc6ec5e0e
mov ecx, dword [0x49eb64]
sar ecx, 7
imul ecx, ecx, 0x53c09c5
cmp eax, ecx
jg 0x43ddf6
mov eax, dword [0x49e0bc]
xor eax, 0x755dff7e
mov dword [0x49e0bc], eax
jmp 0x43ddfb
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd0]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xb4]
mov dword [ecx], eax
call fcn.00420030
mov ecx, dword [0x49e240]
mov edx, dword [0x49f070]
xor ecx, edx
xor ecx, 0xa2ba2f5b
mov dword [0x49f070], ecx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xd8]
cmp eax, dword [esp + 0xd0]
jle 0x43eae7
mov ax, word [0x4a0714]
movsx ecx, ax
or ecx, 0xbffcfcde
mov edx, dword [0x49eff8]
xor edx, ecx
mov dword [0x49eff8], edx
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xc8]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0xd0]
mov esi, dword [esp + 0xbc]
cmp ecx, dword [esi + edx*4]
jb 0x43deca
mov eax, dword [esp + 0xd8]
sub eax, dword [esp + 0xd0]
sub eax, 1
mov ecx, dword [esp + 0xb0]
mov dword [ecx + eax*4], 0xffffffff
jmp 0x43e489
mov eax, 0xb0947bec
mov ecx, dword [0x49f358]
imul ecx, ecx, 0xc5557558
cmp eax, ecx
jne 0x43df0a
mov eax, dword [0x49e87c]
shl eax, 2
cmp eax, 0xba5c5909
jge 0x43df05
mov eax, dword [0x49ebe8]
add eax, 0x68cd89fd
mov dword [0x49ebe8], eax
jmp 0x43df0a
mov eax, dword [0x49f680]
mov ecx, dword [0x49e1d4]
mov edx, ecx
inc edx
mov dword [0x49e1d4], edx
mov edx, dword [0x49e0c8]
mov esi, edx
dec esi
mov dword [0x49e0c8], esi
lea ecx, [ecx + edx - 1]
xor eax, ecx
mov ecx, dword [0x49eec8]
imul ecx, eax
mov dword [0x49eec8], ecx
mov eax, dword [0x49f0a4]
add eax, 0x62a3d0db
mov dword [0x49f0a4], eax
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x74], eax
mov eax, dword [0x49f7e8]
mov ecx, eax
inc ecx
mov dword [0x49f7e8], ecx
mov ecx, 0x2cf6a57c
sub ecx, eax
mov eax, dword [0x49eb40]
and eax, ecx
mov dword [0x49eb40], eax
movzx eax, word [esp + 0x74]
mov dword [esp + 0x7c], eax
mov dword [0x49f7d0], 0x1116d673
movzx eax, word [esp + 0x76]
mov dword [esp + 0x78], eax
mov eax, dword [0x49e1ac]
mov ecx, eax
inc ecx
mov dword [0x49e1ac], ecx
add eax, 0x88f73ed6
mov ecx, dword [0x49e738]
imul ecx, eax
mov dword [0x49e738], ecx
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x78]
xor edx, edx
div ecx
mov dword [esp + 0x88], eax
mov eax, dword [0x49f7b4]
xor eax, 0xc9c0000
mov ecx, dword [0x49eee0]
add ecx, eax
mov dword [0x49eee0], ecx
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x88]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x80], eax
mov di, word [0x4a0246]
mov ax, di
xor eax, 0xa72
mov di, ax
mov word [0x4a0246], di
mov eax, dword [esp + 0x80]
shl eax, 0x10
mov dword [esp + 0x80], eax
mov eax, dword [0x49f000]
mov ecx, eax
dec ecx
mov dword [0x49f000], ecx
and eax, 0x28010c0c
mov dword [0x49e7a0], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc8]
movzx eax, word [ecx + eax*4 - 2]
mov ecx, dword [esp + 0x80]
or ecx, eax
mov dword [esp + 0x80], ecx
mov eax, dword [0x49e268]
inc eax
mov dword [0x49e268], eax
xor eax, 0x51a04800
mov ecx, dword [0x49def4]
or eax, ecx
or eax, 0xac19936b
mov dword [0x49def4], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x7c]
imul eax, ecx
mov dword [esp + 0x70], eax
mov eax, dword [0x49e3c0]
add eax, 0x7fff77ea
mov dword [0x49e3c0], eax
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x70]
jae 0x43e1d5
mov eax, dword [0x49f328]
not eax
mov cx, word [0x49fd38]
mov dx, cx
mov esi, edx
dec esi
mov cx, si
mov word [0x49fd38], cx
lea eax, [eax + edx - 1]
and eax, 0x2f18
mov cx, word [0x49ffba]
mov dx, cx
imul edx, eax
mov cx, dx
mov word [0x49ffba], cx
mov eax, dword [esp + 0x88]
dec eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x80]
add edx, eax
mov dword [esp + 0x80], edx
mov cx, word [0x4a08e2]
mov ax, cx
add eax, 0xe7e9971f
mov cx, ax
mov word [0x4a08e2], cx
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x74]
mov byte [esp + 0x4b], cl
jb 0x43e183
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x70]
setb cl
mov byte [esp + 0x4b], cl
mov al, byte [esp + 0x4b]
test al, 1
jne 0x43e194
jmp 0x43e1bc
mov eax, dword [esp + 0x88]
add eax, 0xffffffff
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x74]
add eax, dword [esp + 0x80]
mov dword [esp + 0x80], eax
jmp 0x43e158
mov eax, dword [0x49e838]
imul eax, eax, 0x52453a35
mov ecx, dword [0x49e6b8]
add ecx, eax
mov dword [0x49e6b8], ecx
mov eax, 0x182e1f21
mov cx, word [0x4a0480]
movsx edx, cx
xor edx, 0xe03947a2
cmp eax, edx
jge 0x43e201
mov eax, dword [0x49efb8]
add eax, 0x730765a2
mov dword [0x49efb8], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x80]
sub ecx, eax
mov dword [esp + 0x80], ecx
mov eax, dword [0x49f2f0]
and eax, 0x50e343
mov dword [0x49f2f0], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
xor edx, edx
div ecx
mov dword [esp + 0x8c], eax
mov eax, dword [0x49f1b4]
mov ecx, eax
inc ecx
mov dword [0x49f1b4], ecx
mov dword [0x49dff4], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x8c]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x84], eax
mov word [0x4a034a], 0x68e5
mov eax, dword [esp + 0x84]
shl eax, 0x10
mov dword [esp + 0x84], eax
mov eax, dword [0x49db48]
or eax, 0x2bb0
mov si, ax
mov word [0x49fc88], si
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc8]
movzx eax, word [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x84]
or ecx, eax
mov dword [esp + 0x84], ecx
mov dword [0x49e34c], 0x2dd78f86
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x7c]
imul eax, ecx
mov dword [esp + 0x70], eax
mov eax, dword [0x49f4a8]
mov ecx, eax
inc ecx
mov dword [0x49f4a8], ecx
add eax, 0x553796d7
mov ecx, dword [0x49e9a8]
imul ecx, eax
mov dword [0x49e9a8], ecx
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x70]
jae 0x43e40d
mov eax, dword [0x49f778]
xor eax, 0xffffffff
cmp eax, 0xb3837e3a
jne 0x43e336
mov ax, word [0x49faa2]
mov cx, ax
add ecx, 0xc27edc45
mov ax, cx
mov word [0x49faa2], ax
mov eax, dword [esp + 0x8c]
dec eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x84]
add ecx, eax
mov dword [esp + 0x84], ecx
mov eax, dword [0x49eab0]
imul eax, eax, 0xd207a8d8
or eax, 0xb13f3da4
cmp eax, 0x4e38b12f
jg 0x43e38c
mov ax, word [0x4a02d2]
mov cx, ax
add ecx, 0x53a86509
mov ax, cx
mov word [0x4a02d2], ax
jmp 0x43e391
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x74]
mov byte [esp + 0x4a], cl
jb 0x43e3bc
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x70]
setb cl
mov byte [esp + 0x4a], cl
mov al, byte [esp + 0x4a]
test al, 1
jne 0x43e3cd
jmp 0x43e3f5
mov eax, dword [esp + 0x8c]
add eax, 0xffffffff
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x74]
add eax, dword [esp + 0x84]
mov dword [esp + 0x84], eax
jmp 0x43e391
mov ax, word [0x49ff94]
mov cx, ax
add ecx, 0x4267867d
mov ax, cx
mov word [0x49ff94], ax
mov dword [0x49f064], 0x5d0a8637
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x84]
sub ecx, eax
mov dword [esp + 0x84], ecx
mov eax, dword [0x49e6c8]
xor eax, 0xbfeb0f71
mov dword [0x49e6c8], eax
mov eax, dword [esp + 0x88]
shl eax, 0x10
mov ecx, dword [esp + 0x8c]
or eax, ecx
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xd0]
sub ecx, edx
mov edx, dword [esp + 0xb0]
mov dword [edx + ecx*4 - 4], eax
mov eax, dword [0x49e6e4]
inc eax
mov dword [0x49e6e4], eax
mov ecx, dword [0x49dc28]
sub eax, ecx
mov ecx, dword [0x49da40]
add ecx, eax
mov dword [0x49da40], ecx
mov eax, dword [0x49f874]
imul eax, eax, 0x8084ffc6
mov cx, ax
mov word [0x49ff56], cx
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xd0]
sub eax, edx
mov edx, dword [esp + 0xb0]
mov esi, dword [edx + eax*4 - 4]
inc esi
mov dword [edx + eax*4 - 4], esi
mov eax, dword [0x49ef44]
or eax, 0xae06571b
mov dword [0x49ef44], eax
lea eax, [esp + 0x9c]
xor ecx, ecx
mov dx, word [0x4a0958]
movsx esi, dx
mov edi, 0xc706750f
sub edi, esi
mov esi, dword [0x49f1d8]
xor esi, edi
mov dword [0x49f1d8], esi
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0xd0]
sub esi, edi
mov edi, dword [esp + 0xb0]
mov ebx, dword [edi + esi*4 - 4]
dec ebx
mov dword [edi + esi*4 - 4], ebx
mov dword [0x49e1a4], 0x9c6b1355
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x44], ecx
call fcn.00419c10
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43e548
jmp 0x43ee6c
mov eax, 0x41f7e7d
mov cx, word [0x4a0440]
mov dx, cx
dec edx
mov si, dx
mov word [0x4a0440], si
movsx edx, cx
mov edi, dword [0x49e2cc]
sar edi, 6
sub edx, edi
add edx, 0x9e5e9664
cmp eax, edx
jne 0x43e5ac
mov eax, dword [0x49dd8c]
mov ecx, eax
inc ecx
mov dword [0x49dd8c], ecx
add eax, 0xaab14086
or eax, 0x9b6f
mov dx, word [0x49fe8c]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x49fe8c], dx
cmp dword [esp + 0xd0], 1
jge 0x43e5c5
xor eax, eax
mov dword [esp + 0x40], eax
jmp 0x43e5dd
mov eax, dword [esp + 0xd0]
sub eax, 1
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x9c]
mov edx, dword [esp + 0xa4]
mov dword [edx], eax
mov si, word [0x49fb24]
mov ax, si
add eax, 0x3c9bee9d
mov si, ax
mov word [0x49fb24], si
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xbc]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0xa4]
mov dword [edx + 4], eax
mov si, word [0x4a0602]
movsx eax, si
mov edx, dword [0x49da2c]
xor edx, 0x7e6da925
or eax, edx
mov edx, dword [0x49e468]
or edx, eax
mov dword [0x49e468], edx
mov eax, dword [esp + 0xd8]
sub eax, dword [esp + 0xd0]
sub eax, 1
mov edx, dword [esp + 0xb0]
mov eax, dword [edx + eax*4]
mov dword [esp], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0042e9e0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43e68b
jmp 0x43ee6c
lea eax, [esp + 0x90]
xor ecx, ecx
mov edx, dword [0x49de1c]
mov dword [0x49f840], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x3c], ecx
call fcn.00419c10
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43e6c9
jmp 0x43ee6c
mov eax, 0x43fa2cfc
mov cx, word [0x49fb42]
mov dx, cx
inc edx
mov cx, dx
mov word [0x49fb42], cx
movsx edx, cx
mov cx, word [0x49fb64]
movsx esi, cx
imul edx, esi
and edx, 0x977008b7
cmp eax, edx
jl 0x43e719
mov ax, word [0x4a076a]
mov cx, ax
imul ecx, ecx, 0x1680b8cc
mov ax, cx
mov word [0x4a076a], ax
cmp dword [esp + 0xd8], 2
jge 0x43e732
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x43e74a
mov eax, dword [esp + 0xd8]
sub eax, 2
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x98]
mov dword [ecx], eax
mov eax, dword [0x49f4ec]
add eax, 0x5b044b2f
mov dword [0x49f4ec], eax
cmp dword [esp + 0xd8], 1
jge 0x43e77f
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x43e797
mov eax, dword [esp + 0xd8]
sub eax, 1
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x98]
mov dword [ecx + 4], eax
mov eax, dword [0x49ef14]
or eax, 0x6cf923e8
mov dword [0x49ef14], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x98]
mov dword [ecx + 8], eax
mov eax, dword [0x49f31c]
or eax, 0x36a18484
mov dword [0x49f31c], eax
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0042f320
cmp eax, 0
jg 0x43e4cd
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xb4]
mov edx, dword [0x49dff4]
inc edx
mov dword [0x49dff4], edx
imul edx, edx, 0x811c4e3b
mov esi, 0xd446529a
sub esi, edx
mov dword [0x49f548], esi
mov edx, dword [esp + 0xd8]
sub edx, dword [esp + 0xd0]
sub edx, 1
mov esi, dword [esp + 0xb0]
mov edx, dword [esi + edx*4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0042e9e0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43e86f
jmp 0x43ee6c
lea eax, [esp + 0x9c]
mov dword [0x49df1c], 0x944667c1
mov ecx, dword [esp + 0xd8]
sub ecx, dword [esp + 0xd0]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a2a0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43e8b5
jmp 0x43ee6c
mov eax, 0x80b9ea5c
mov cx, word [0x4a0556]
movsx edx, cx
cmp eax, edx
jne 0x43e8e4
mov ax, word [0x49fdb8]
mov cx, ax
and ecx, 0x5ae1
mov ax, cx
mov word [0x49fdb8], ax
lea eax, [esp + 0xc0]
lea ecx, [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0040c160
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43e917
jmp 0x43ee6c
lea eax, [esp + 0xc0]
xor ecx, ecx
mov dx, word [0x4a08bc]
mov si, dx
inc esi
mov dx, si
mov word [0x4a08bc], dx
xor esi, 0xf422
mov dx, word [0x4a00ac]
mov di, dx
add edi, esi
mov dx, di
mov word [0x4a00ac], dx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x30], ecx
call fcn.00401040
cmp eax, 0
jge 0x43eac7
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xb4]
mov edx, dword [0x49f2cc]
add edx, 0xd31aac09
mov dword [0x49f2cc], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0041dec0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43e9af
jmp 0x43ee6c
mov eax, dword [0x49f32c]
dec eax
mov dword [0x49f32c], eax
sub eax, 0x2495a5bc
cmp eax, 0x88089600
jne 0x43e9f5
mov eax, dword [0x49db88]
mov ecx, eax
inc ecx
mov dword [0x49db88], ecx
add eax, 0x41684efc
mov ecx, dword [0x49f6cc]
not ecx
or eax, ecx
mov ecx, dword [0x49de48]
sub ecx, eax
mov dword [0x49de48], ecx
lea eax, [esp + 0x9c]
mov ecx, dword [esp + 0xd8]
sub ecx, dword [esp + 0xd0]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a2a0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43ea31
jmp 0x43ee6c
lea eax, [esp + 0xc0]
lea ecx, [esp + 0x9c]
mov dx, word [0x49fb48]
mov si, dx
and esi, 0xac66
mov dx, si
mov word [0x49fb48], dx
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0043d0f0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x43ea7e
jmp 0x43ee6c
mov word [0x49ff80], 0x72c0
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xd0]
sub eax, ecx
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + eax*4 - 4]
dec edx
mov dword [ecx + eax*4 - 4], edx
mov eax, dword [0x49e8b4]
add eax, 0x9f60b9a8
mov si, word [0x49f9d6]
mov cx, si
or ecx, eax
mov si, cx
mov word [0x49f9d6], si
mov dword [0x49edb4], 0x9fb3021
mov eax, dword [esp + 0xd8]
add eax, 0xffffffff
mov dword [esp + 0xd8], eax
jmp 0x43de4d
mov ax, word [0x49fcfc]
mov cx, ax
add ecx, 0x58fe44f9
mov ax, cx
mov word [0x49fcfc], ax
cmp dword [esp + 0xe0], 0
je 0x43ebc7
mov dword [0x49e9bc], 0x41928c40
mov eax, dword [esp + 0xe0]
mov ecx, esp
lea edx, [esp + 0xa8]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.0041dec0
mov ecx, dword [0x49f8dc]
mov edx, ecx
inc edx
mov dword [0x49f8dc], edx
xor ecx, 0xb4c8
mov si, cx
mov word [0x49fffe], si
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xec]
mov edx, dword [edx]
imul ecx, edx
mov edx, dword [esp + 0xe0]
mov dword [edx], ecx
mov ecx, dword [0x49f6d0]
mov si, word [0x4a025a]
movsx edx, si
mov si, word [0x4a03a6]
movsx edi, si
imul edx, edi
cmp ecx, edx
mov dword [esp + 0x2c], eax
jne 0x43ebc2
mov eax, dword [0x49dae0]
sar eax, 2
imul eax, eax, 0xf596e9ec
mov ecx, dword [0x49eaa0]
inc ecx
mov dword [0x49eaa0], ecx
and eax, ecx
mov ecx, dword [0x49ecb0]
or ecx, eax
mov dword [0x49ecb0], ecx
jmp 0x43ebc7
mov ax, word [0x4a008e]
movsx ecx, ax
mov edx, dword [0x49ec00]
inc edx
mov dword [0x49ec00], edx
and ecx, edx
mov edx, dword [0x49f02c]
add edx, ecx
mov dword [0x49f02c], edx
cmp dword [esp + 0xe4], 0
je 0x43ee12
mov eax, 0xef9d7ffb
mov ecx, dword [0x49dc5c]
and ecx, 0xf07334f2
mov dword [0x49dc5c], ecx
mov ecx, dword [esp + 0xcc]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0xc0]
mov dword [edx], ecx
mov dword [esp + 0x28], eax
call fcn.00420030
mov ecx, dword [0x49eca0]
dec ecx
mov dword [0x49eca0], ecx
mov si, word [0x4a0290]
mov dx, si
dec edx
mov di, dx
mov word [0x4a0290], di
movsx edx, si
imul edx, edx, 0xa78e2fd6
xor ecx, edx
mov edx, dword [esp + 0x28]
cmp edx, ecx
mov dword [esp + 0x24], eax
jl 0x43ec9e
mov ax, word [0x4a056c]
movsx ecx, ax
sar ecx, 8
mov edx, dword [0x49e3b8]
mov esi, edx
inc esi
mov dword [0x49e3b8], esi
add edx, 0xf90a6d41
and ecx, edx
mov edx, dword [0x49eab8]
and edx, ecx
mov dword [0x49eab8], edx
mov eax, dword [esp + 0xe4]
mov ecx, esp
lea edx, [esp + 0xc0]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.0041dec0
mov ecx, dword [0x49e7f8]
mov edx, ecx
dec edx
mov dword [0x49e7f8], edx
xor ecx, 0x34cb3806
cmp ecx, 0x85bb7855
mov dword [esp + 0x20], eax
je 0x43ecf1
mov eax, dword [0x49eb34]
or eax, 0x8cdfe24
mov dword [0x49eb34], eax
jmp 0x43ed01
mov eax, dword [0x49ebb4]
imul eax, eax, 0x32e7ce99
mov dword [0x49ebb4], eax
mov eax, 0xff04c994
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xe4]
mov dword [edx], ecx
mov si, word [0x4a0272]
movsx ecx, si
sar ecx, 2
add ecx, 0x1ece0f59
xor ecx, 0x966d8520
cmp eax, ecx
je 0x43ed7c
mov eax, 0xb77be786
mov cx, word [0x4a07dc]
movsx edx, cx
sar edx, 2
cmp eax, edx
jg 0x43ed77
mov ax, word [0x49fb1c]
movsx ecx, ax
mov edx, 0xdbc74cdd
sub edx, ecx
xor edx, 0xe638f3c5
mov ecx, dword [0x49e0ac]
or ecx, edx
mov dword [0x49e0ac], ecx
jmp 0x43edc7
mov eax, 0xf65bbde9
mov ecx, dword [0x49dae0]
cmp eax, ecx
jle 0x43edc2
mov ax, word [0x49fe5a]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x49fe5a], dx
movsx ecx, ax
mov esi, dword [0x49e218]
or ecx, esi
or ecx, 0x74f25c93
mov esi, dword [0x49dca8]
add esi, ecx
mov dword [0x49dca8], esi
jmp 0x43edc7
xor eax, eax
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x1c], eax
call fcn.00401040
cmp eax, 0
jne 0x43edfa
mov eax, dword [esp + 0xe4]
mov dword [eax], 1
mov ax, word [0x49fdf6]
mov cx, ax
add ecx, 0x489f423f
mov ax, cx
mov word [0x49fdf6], ax
mov eax, dword [0x49f6b0]
imul eax, eax, 0xdb31690f
and eax, 0x9b09851e
mov cx, word [0x4a0128]
mov dx, cx
dec edx
mov cx, dx
mov word [0x4a0128], cx
movsx edx, cx
imul edx, edx, 0xa226387e
mov esi, dword [0x49e274]
inc esi
mov dword [0x49e274], esi
imul edx, esi
cmp eax, edx
jg 0x43ee67
mov eax, dword [0x49f818]
or eax, 0x96a9852d
mov dword [0x49f818], eax
jmp 0x43ee6c
mov eax, 0x4005ca57
mov ecx, esp
lea edx, [esp + 0x90]
mov dword [ecx + 0x10], edx
lea edx, [esp + 0x9c]
mov dword [ecx + 0xc], edx
lea edx, [esp + 0xa8]
mov dword [ecx + 8], edx
lea edx, [esp + 0xb4]
mov dword [ecx + 4], edx
lea edx, [esp + 0xc0]
mov dword [ecx], edx
mov dword [ecx + 0x14], 0
mov dword [esp + 0x18], eax
call fcn.00414d40
mov eax, dword [0x49e430]
xor eax, 0xc914bd1c
xor eax, 0x4f3ec3ff
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jne 0x43eede
mov eax, dword [0x49f13c]
xor eax, 0xc67fad45
mov dword [0x49f13c], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add esp, 0xf4
pop esi
pop edi
pop ebx
ret