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

Disassembly:
push ebx
push edi
push esi
sub esp, 0xf8
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x10c]
mov esi, dword [esp + 0x108]
mov edi, 0xff7fffdf
mov dword [esp + 0xf0], eax
mov dword [esp + 0xec], ecx
mov dword [esp + 0xe8], edx
mov dword [esp + 0xe4], esi
mov eax, dword [0x49d278]
sar eax, 6
mov ecx, dword [0x4ae320]
mov edx, ecx
dec edx
mov dword [0x4ae320], edx
imul eax, ecx
cmp edi, eax
jl 0x4285f2
mov eax, dword [0x4aeea4]
shr eax, 5
mov ecx, 0x7b5584c6
sub ecx, eax
mov dx, word [0x498942]
mov ax, dx
sub eax, ecx
mov dx, ax
mov word [0x498942], dx
jmp 0x42860a
mov eax, dword [0x49cb54]
mov ecx, eax
inc ecx
mov dword [0x49cb54], ecx
add eax, 0x730bb7d1
mov dword [0x4aa4c8], eax
xor eax, eax
mov ecx, dword [0x4a46fc]
xor ecx, 0xa5515933
mov dword [0x4a46fc], ecx
mov ecx, dword [0x4a5440]
mov edx, ecx
dec edx
mov dword [0x4a5440], edx
mov edx, dword [0x4ac0cc]
and edx, ecx
mov dword [0x4ac0cc], edx
mov ecx, dword [esp + 0xf0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x70], eax
call fcn.004400e0
cmp eax, 0
jne 0x42866f
mov dword [esp + 0xf4], 0xfffffff4
jmp 0x429f98
mov eax, dword [0x4a3d08]
xor eax, 0xda5677a7
mov dword [0x4a3d08], eax
mov eax, esp
lea ecx, [esp + 0x94]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xa0]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xac]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xb8]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xc4]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.0042daa0
mov eax, dword [0x4a037c]
add eax, 0xccad8165
mov dword [0x4a037c], eax
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004159b0
cmp eax, 0
jge 0x4287fa
mov eax, 0x1a801083
mov ecx, dword [0x4a4904]
shl ecx, 6
mov edx, dword [0x4a915c]
shl edx, 7
add ecx, edx
cmp eax, ecx
jl 0x428728
mov ax, word [0x495ee6]
mov cx, ax
add ecx, 0x1001
mov ax, cx
mov word [0x495ee6], ax
cmp dword [esp + 0xe4], 0
je 0x42876d
xor eax, eax
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x6c], eax
call fcn.00413430
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x428768
jmp 0x429f31
jmp 0x42876d
mov eax, dword [0x49e378]
and eax, 0xbdaea695
mov ecx, dword [0x4afb38]
xor ecx, eax
mov dword [0x4afb38], ecx
cmp dword [esp + 0xe8], 0
je 0x4287c7
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00441540
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x4287c2
jmp 0x429f31
jmp 0x4287c7
mov ax, word [0x4939da]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x4939da], dx
movsx ecx, ax
and ecx, 0xec842808
mov dword [0x4a8804], ecx
mov dword [esp + 0xf4], 0
jmp 0x429f98
mov eax, 0xb38b4945
mov ecx, dword [0x4a8a5c]
dec ecx
mov dword [0x4a8a5c], ecx
imul ecx, ecx, 0xa0012e3c
cmp eax, ecx
jne 0x428829
mov eax, dword [0x49dc8c]
or eax, 0x13960394
mov dword [0x49dc8c], eax
lea eax, [esp + 0xc4]
mov ecx, dword [esp + 0xec]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00441540
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x428858
jmp 0x429f31
mov eax, 0xa4a0a0f4
mov ecx, dword [0x4aa230]
shl ecx, 5
cmp eax, ecx
jl 0x42888b
mov ax, word [0x492044]
mov cx, ax
xor ecx, 0x373a
mov ax, cx
mov word [0x492044], ax
jmp 0x4288d8
mov eax, 0x1a0b8337
mov ecx, dword [0x4abc54]
mov edx, ecx
inc edx
mov dword [0x4abc54], edx
cmp eax, ecx
je 0x4288bb
mov eax, dword [0x49dbbc]
add eax, 0x3e8a3dac
mov dword [0x49dbbc], eax
jmp 0x4288d3
mov ax, word [0x491c86]
mov cx, ax
imul ecx, ecx, 0x3f5f97b
mov ax, cx
mov word [0x491c86], ax
jmp 0x4288d8
lea eax, [esp + 0xb8]
mov ecx, dword [esp + 0xf0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00441540
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x428907
jmp 0x429f31
lea eax, [esp + 0xac]
mov ecx, dword [0x49c4c4]
sar ecx, 0xa
add ecx, 0x243ff063
xor ecx, 0xf78aab03
mov edx, dword [0x4ae8b0]
or edx, ecx
mov dword [0x4ae8b0], edx
mov dword [esp + 0xb8], 1
mov dword [esp + 0xc4], 1
mov si, word [0x4973f6]
movsx ecx, si
sar ecx, 7
mov edx, dword [0x4a5278]
mov edi, 0xc4c375e3
sub edi, edx
or ecx, edi
mov edx, dword [0x4a1388]
sub edx, ecx
mov dword [0x4a1388], edx
mov ecx, dword [esp + 0xec]
mov ecx, dword [ecx + 4]
add ecx, 2
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043a8a0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x42899f
jmp 0x429f31
lea eax, [esp + 0xac]
xor ecx, ecx
mov edx, dword [0x49d6bc]
add edx, 0xbe7acb59
mov dword [0x49d6bc], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x68], ecx
call fcn.00413430
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x4289e3
jmp 0x429f31
mov eax, 0x820c3cef
mov ecx, dword [0x4a3f9c]
not ecx
and ecx, 0xf8556c0d
mov edx, dword [0x4a889c]
sub eax, edx
xor eax, 0x43df4cf1
cmp ecx, eax
jle 0x428a1e
mov eax, dword [0x49f8bc]
mov ecx, dword [0x49bfc8]
sub ecx, eax
mov dword [0x49bfc8], ecx
lea eax, [esp + 0xa0]
mov ecx, 2
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x64], ecx
call fcn.0043a8a0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x428a53
jmp 0x429f31
lea eax, [esp + 0x94]
mov ecx, 3
mov edx, dword [0x4a904c]
add edx, 0xf7ffffff
mov dword [0x4a904c], edx
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x60], ecx
call fcn.0043a8a0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x428a9a
jmp 0x429f31
mov eax, dword [0x4a5774]
and eax, 0xa5a3ed46
mov dword [0x4a5774], eax
mov eax, esp
lea ecx, [esp + 0xb8]
mov dword [eax], ecx
call fcn.00401150
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x1b
mov edx, eax
add edx, ecx
and edx, 0xffffffe0
sub eax, edx
mov dword [esp + 0xd0], eax
mov eax, dword [0x4a5574]
xor eax, 0x59818fe0
mov dword [0x4a5574], eax
cmp dword [esp + 0xd0], 0x1f
jge 0x428bb3
lea eax, [esp + 0xc4]
mov cx, word [0x492f2c]
mov dx, cx
add edx, 0x2b5fadc4
mov cx, dx
mov word [0x492f2c], cx
mov edx, dword [esp + 0xd0]
mov esi, 0x1f
sub esi, edx
mov dword [esp + 0xd0], esi
mov edx, dword [0x4a4830]
or edx, 0xdf9275ff
mov dword [0x4a4830], edx
mov edx, dword [esp + 0xd0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040bff0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x428b5e
jmp 0x429f31
lea eax, [esp + 0xb8]
mov ecx, dword [0x4ab8d4]
or ecx, 0xd3e70f45
mov dword [0x4ab8d4], ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040bff0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x428b9f
jmp 0x429f31
mov eax, dword [0x4ae204]
xor eax, 0x7b3867c9
mov dword [0x4ae204], eax
jmp 0x428bbe
mov dword [esp + 0xd0], 0
mov eax, 0xc23522f4
mov cx, word [0x4926b0]
movsx edx, cx
imul edx, edx, 0xf0c734a6
add edx, 0x5a702fc6
cmp eax, edx
jg 0x428c00
mov eax, dword [0x4ad120]
inc eax
mov dword [0x4ad120], eax
and eax, 0x8022
or eax, 0x5bc5
mov cx, ax
mov word [0x49a9bc], cx
mov eax, 0x7e8690bf
mov ecx, dword [esp + 0xc8]
dec ecx
mov dword [esp + 0xd8], ecx
mov ecx, dword [0x49fa04]
dec ecx
mov dword [0x49fa04], ecx
xor ecx, 0x80a2024
mov edx, dword [0x4ac2f0]
or ecx, edx
or ecx, 0xc6a58f90
mov dword [0x4ac2f0], ecx
mov ecx, dword [esp + 0xbc]
dec ecx
mov dword [esp + 0xd4], ecx
mov ecx, dword [0x4a0c38]
add ecx, 0xce3e2f56
mov dword [0x4a0c38], ecx
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xd4]
sub ecx, edx
shl ecx, 5
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0xb8]
mov dword [edx], ecx
mov dword [esp + 0x5c], eax
call fcn.0040bff0
mov ecx, dword [0x49e4c0]
sar ecx, 8
mov edx, dword [esp + 0x5c]
cmp edx, ecx
mov dword [esp + 0x58], eax
jne 0x428cc4
mov eax, dword [0x4acd04]
add eax, 0x2a62df52
and eax, 0xf425
mov cx, word [0x4957fa]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x4957fa], cx
jmp 0x428cc9
lea eax, [esp + 0xc4]
lea ecx, [esp + 0xb8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00439d30
cmp eax, 0
jl 0x428d87
mov eax, 0xb21a551b
mov dword [0x4a097c], 0x49eb5300
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xd4]
sub ecx, edx
mov edx, dword [esp + 0xb4]
mov esi, dword [edx + ecx*4]
inc esi
mov dword [edx + ecx*4], esi
mov di, word [0x497974]
movsx ecx, di
xor ecx, 0x27f5d608
cmp eax, ecx
je 0x428d40
mov eax, dword [0x4afb88]
or eax, 0xfac00143
mov dword [0x4afb88], eax
mov eax, esp
lea ecx, [esp + 0xb8]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc4]
mov dword [eax + 4], ecx
mov dword [eax], ecx
call fcn.0042cd90
mov dx, word [0x4993ec]
movsx ecx, dx
sar ecx, 0xa
imul ecx, ecx, 0x4fca05c4
mov esi, dword [0x4a2e30]
and esi, ecx
mov dword [0x4a2e30], esi
mov dword [esp + 0x54], eax
jmp 0x428cc9
mov eax, 0x85e24a2d
mov ecx, dword [0x4ae814]
xor ecx, 0xffffffff
sub ecx, 0x964361b7
cmp eax, ecx
jl 0x428e17
mov eax, dword [0x49be30]
dec eax
mov dword [0x49be30], eax
and eax, 0xf47b813c
and eax, 0x7db283
cmp eax, 0xc5240088
jle 0x428e12
mov eax, 0x7d9fcdfb
mov ecx, dword [0x4af2cc]
inc ecx
mov dword [0x4af2cc], ecx
mov dx, word [0x492e82]
movsx esi, dx
mov dx, word [0x497fd0]
mov di, dx
inc edi
mov bx, di
mov word [0x497fd0], bx
movsx edi, dx
add esi, edi
or ecx, esi
cmp eax, ecx
jne 0x428e08
jmp 0x428e0d
jmp 0x428e0d
jmp 0x428e12
jmp 0x428e21
mov dword [0x4a245c], 0xc592e53c
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xd4]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xb8]
mov dword [ecx], eax
call fcn.004337e0
mov ecx, dword [0x4aaf84]
mov edx, 0x5e9be7cb
sub edx, ecx
xor edx, 0x73a5b99c
mov ecx, dword [0x4ab278]
sub ecx, edx
mov dword [0x4ab278], ecx
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xdc]
cmp eax, dword [esp + 0xd4]
jle 0x429cda
mov eax, dword [0x4a7590]
imul eax, eax, 0x6c440406
mov dword [0x4a7590], eax
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xc0]
cmp eax, dword [edx + ecx*4]
jb 0x428eea
mov eax, dword [esp + 0xdc]
sub eax, dword [esp + 0xd4]
sub eax, 1
mov ecx, dword [esp + 0xb4]
mov dword [ecx + eax*4], 0xffffffff
jmp 0x429690
mov eax, dword [0x4a7fdc]
mov ecx, eax
inc ecx
mov dword [0x4a7fdc], ecx
or eax, 0xeed414ca
mov ecx, dword [0x49bd3c]
add ecx, eax
mov dword [0x49bd3c], ecx
mov eax, dword [0x4a50d8]
xor eax, 0xffffffff
cmp eax, 0x21d822
jne 0x428f6a
mov eax, dword [0x4a2270]
sar eax, 6
xor eax, 0x9d844f32
or eax, 0x38cedae3
cmp eax, 0xb2e8e4c
jl 0x428f65
mov eax, 0x88208508
mov ecx, dword [0x4a4bbc]
dec ecx
mov dword [0x4a4bbc], ecx
xor ecx, 0xfb0d7eed
cmp eax, ecx
jle 0x428f60
jmp 0x428f60
jmp 0x428f65
jmp 0x428f6a
mov eax, dword [0x4afd4c]
mov ecx, eax
dec ecx
mov dword [0x4afd4c], ecx
add eax, 0xcdec9379
cmp eax, 0x9afc2ef8
jg 0x428fb5
mov ax, word [0x497b04]
movsx ecx, ax
mov edx, dword [0x4aa514]
imul ecx, edx
inc edx
mov dword [0x4aa514], edx
imul ecx, ecx, 0xc714a9b0
mov edx, dword [0x4a6840]
sub edx, ecx
mov dword [0x4a6840], edx
mov eax, 0xfbff735e
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xc0]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x78], ecx
mov ecx, dword [0x4a3ff0]
xor ecx, 0xffffffff
cmp eax, ecx
jl 0x428ff4
mov eax, dword [0x4a0c1c]
add eax, 0x30444001
mov dword [0x4a0c1c], eax
jmp 0x42901b
mov ax, word [0x496460]
movsx ecx, ax
sar ecx, 5
mov edx, 0xe3d19140
sub edx, ecx
or edx, 0xb6a7a6c7
mov ecx, dword [0x49ca70]
add ecx, edx
mov dword [0x49ca70], ecx
mov eax, 0xf4cd1a80
movzx ecx, word [esp + 0x78]
mov dword [esp + 0x80], ecx
mov ecx, dword [0x4a14cc]
mov dx, word [0x497e5c]
mov si, dx
or ecx, esi
or ecx, 0x23bf
mov dx, cx
mov word [0x497e5c], dx
movzx ecx, word [esp + 0x7a]
mov dword [esp + 0x7c], ecx
mov dx, word [0x498692]
movsx ecx, dx
add ecx, 0x6b181e60
cmp eax, ecx
jg 0x429087
mov ax, word [0x497d34]
mov cx, ax
add ecx, 0x7595bb4c
mov ax, cx
mov word [0x497d34], ax
mov eax, 0x14f12579
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xcc]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x7c]
xor esi, esi
mov dword [esp + 0x4c], eax
mov eax, ecx
mov dword [esp + 0x48], edx
mov edx, esi
mov ecx, dword [esp + 0x48]
div ecx
mov dword [esp + 0x8c], eax
mov di, word [0x49b10c]
mov ax, di
inc eax
mov bx, ax
mov word [0x49b10c], bx
movsx eax, di
mov di, word [0x493c7c]
movsx ecx, di
not ecx
and ecx, 0x2332df6d
or eax, ecx
mov ecx, dword [0x4a5990]
or ecx, eax
mov dword [0x4a5990], ecx
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x8c]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x84], eax
mov eax, dword [0x4a7c60]
and eax, 0x98d26db9
mov dword [0x4a7c60], eax
mov eax, dword [esp + 0x84]
shl eax, 0x10
mov dword [esp + 0x84], eax
mov di, word [0x49371a]
mov ax, di
dec eax
mov di, ax
mov word [0x49371a], di
movsx eax, di
imul eax, eax, 0x53236e7c
mov ecx, dword [0x49d614]
add ecx, eax
mov dword [0x49d614], ecx
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xcc]
movzx eax, word [ecx + eax*4 - 2]
mov ecx, dword [esp + 0x84]
or ecx, eax
mov dword [esp + 0x84], ecx
mov eax, dword [0x4a7470]
sar eax, 8
mov ecx, dword [0x49cc64]
dec ecx
mov dword [0x49cc64], ecx
imul ecx, ecx, 0xf1d17a43
sub eax, ecx
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jne 0x4291d8
mov eax, dword [0x4b009c]
mov ecx, dword [0x4a8f6c]
dec ecx
mov dword [0x4a8f6c], ecx
and eax, ecx
mov ecx, dword [0x4a9e08]
add ecx, eax
mov dword [0x4a9e08], ecx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x80]
imul eax, ecx
mov dword [esp + 0x74], eax
mov dx, word [0x4928a4]
mov ax, dx
xor eax, 0x9884
mov dx, ax
mov word [0x4928a4], dx
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x74]
jae 0x4292e5
mov eax, dword [0x49eb84]
add eax, 0xadfdb96d
mov dword [0x49eb84], eax
mov eax, dword [esp + 0x8c]
dec eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
add ecx, eax
mov dword [esp + 0x84], ecx
mov eax, dword [0x4a9b94]
mov ecx, eax
inc ecx
mov dword [0x4a9b94], ecx
mov dx, word [0x4928ee]
mov cx, dx
imul ecx, eax
mov dx, cx
mov word [0x4928ee], dx
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x78]
mov byte [esp + 0x47], cl
jb 0x429299
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x74]
setb cl
mov byte [esp + 0x47], cl
mov al, byte [esp + 0x47]
test al, 1
jne 0x4292aa
jmp 0x4292d2
mov eax, dword [esp + 0x8c]
add eax, 0xffffffff
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x84]
mov dword [esp + 0x84], eax
jmp 0x42926e
mov eax, dword [0x4abd18]
mov ecx, dword [0x4ae0e4]
or ecx, eax
mov dword [0x4ae0e4], ecx
mov eax, dword [0x49bc20]
mov ecx, dword [0x49faa4]
not ecx
add eax, ecx
mov ecx, dword [0x4a8a78]
mov edx, ecx
inc edx
mov dword [0x4a8a78], edx
add ecx, 0x705781b1
cmp eax, ecx
jg 0x429338
mov eax, dword [0x4ad69c]
mov ecx, eax
inc ecx
mov dword [0x4ad69c], ecx
imul eax, eax, 0x50e65b86
mov ecx, dword [0x4a5bc4]
and ecx, eax
mov dword [0x4a5bc4], ecx
jmp 0x42935a
mov ax, word [0x4953ce]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x4953ce], ax
movsx ecx, ax
xor ecx, 0xcd3bf808
mov dword [0x49ee7c], ecx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x84]
sub ecx, eax
mov dword [esp + 0x84], ecx
mov eax, dword [0x4a5bac]
imul eax, eax, 0xd89b841f
mov dword [0x4a5bac], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x7c]
xor edx, edx
div ecx
mov dword [esp + 0x90], eax
mov eax, dword [0x4afe8c]
mov ecx, dword [0x4a4348]
mov edx, 0xeb35ec30
sub edx, ecx
and eax, edx
mov ecx, dword [0x4a72b4]
add ecx, 0x8d8c9149
cmp eax, ecx
je 0x4293c6
mov dword [0x4a3e98], 0x964c5b3f
mov eax, 0xb425cdd3
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x90]
imul edx, esi
sub ecx, edx
mov dword [esp + 0x88], ecx
mov ecx, dword [0x4a5884]
mov edx, ecx
dec edx
mov dword [0x4a5884], edx
xor ecx, 0x63c1765d
or ecx, 0x90bd91b6
cmp eax, ecx
jge 0x42942a
mov eax, dword [0x49bcc4]
imul eax, eax, 0xbcf3fa10
and eax, 0xed4940b0
mov ecx, dword [0x49e910]
or ecx, eax
mov dword [0x49e910], ecx
mov eax, 0x96e0877c
mov ecx, dword [esp + 0x88]
shl ecx, 0x10
mov dword [esp + 0x88], ecx
mov ecx, dword [0x4acc50]
and ecx, 0x228e2eb8
mov dword [0x4acc50], ecx
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xcc]
movzx ecx, word [edx + ecx*4 - 4]
mov edx, dword [esp + 0x88]
or edx, ecx
mov dword [esp + 0x88], edx
mov ecx, dword [0x49e08c]
cmp eax, ecx
jge 0x429492
mov eax, dword [0x4ae010]
xor eax, 0x559d0a59
mov dword [0x4ae010], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x80]
imul eax, ecx
mov dword [esp + 0x74], eax
mov eax, dword [0x4a03d8]
add eax, 0xaa675047
mov dword [0x4a03d8], eax
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x74]
jae 0x429590
mov word [0x492294], 0x3755
mov eax, dword [esp + 0x90]
dec eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x88]
add ecx, eax
mov dword [esp + 0x88], ecx
mov dword [0x49c64c], 0x55a13683
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x78]
mov byte [esp + 0x46], cl
jb 0x429528
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x74]
setb cl
mov byte [esp + 0x46], cl
mov al, byte [esp + 0x46]
test al, 1
jne 0x429539
jmp 0x429561
mov eax, dword [esp + 0x90]
add eax, 0xffffffff
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x88]
mov dword [esp + 0x88], eax
jmp 0x4294fd
mov eax, dword [0x49ea9c]
mov ecx, eax
dec ecx
mov dword [0x49ea9c], ecx
imul eax, eax, 0xe0220a01
add eax, 0xa95723cc
mov dx, word [0x499c96]
mov cx, dx
and ecx, eax
mov dx, cx
mov word [0x499c96], dx
mov eax, 0x22cfd730
mov cx, word [0x49b4a8]
mov dx, cx
dec edx
mov si, dx
mov word [0x49b4a8], si
movsx edx, cx
mov dword [0x4a03a8], edx
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0x88]
sub edi, edx
mov dword [esp + 0x88], edi
mov edx, dword [0x49b6f4]
imul edx, edx, 0xb9d32c9f
and edx, 0x2e96
mov cx, dx
mov word [0x49af30], cx
mov edx, dword [esp + 0x8c]
shl edx, 0x10
mov edi, dword [esp + 0x90]
or edx, edi
mov edi, dword [esp + 0xdc]
mov ebx, dword [esp + 0xd4]
sub edi, ebx
mov ebx, dword [esp + 0xb4]
mov dword [ebx + edi*4 - 4], edx
mov cx, word [0x497f36]
mov dx, cx
dec edx
mov si, dx
mov word [0x497f36], si
movsx edx, cx
mov cx, word [0x4968a8]
movsx edi, cx
imul edx, edi
sub edx, 0x8c43eac2
cmp eax, edx
jl 0x42968b
mov eax, 0x19c3b8a5
mov ecx, dword [0x4a7de4]
dec ecx
mov dword [0x4a7de4], ecx
or ecx, 0x2fefe8a2
cmp eax, ecx
jl 0x429686
mov eax, dword [0x49f2e0]
mov ecx, eax
inc ecx
mov dword [0x49f2e0], ecx
imul eax, eax, 0xc91b18db
mov ecx, dword [0x49ebf8]
xor ecx, eax
mov dword [0x49ebf8], ecx
jmp 0x42968b
jmp 0x429690
mov eax, 0x8db12b1e
mov ecx, dword [0x4a649c]
and ecx, 0xcd0725ac
cmp eax, ecx
jl 0x4296c1
mov ax, word [0x4912dc]
mov cx, ax
add ecx, 0xb905d780
mov ax, cx
mov word [0x4912dc], ax
mov eax, 0xc20828
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xd4]
sub ecx, edx
mov edx, dword [esp + 0xb4]
mov esi, dword [edx + ecx*4 - 4]
inc esi
mov dword [edx + ecx*4 - 4], esi
mov ecx, dword [0x49bbcc]
inc ecx
mov dword [0x49bbcc], ecx
cmp eax, ecx
jne 0x429713
mov eax, dword [0x4a8190]
add eax, 0xad2c09e7
mov ecx, dword [0x4ade48]
xor ecx, eax
mov dword [0x4ade48], ecx
jmp 0x429718
lea eax, [esp + 0xa0]
xor ecx, ecx
mov edx, dword [0x4ac4b8]
imul edx, edx, 0x9d8d570e
mov dword [0x4ac4b8], edx
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 0xd4]
sub edx, esi
mov esi, dword [esp + 0xb4]
mov edi, dword [esi + edx*4 - 4]
dec edi
mov dword [esi + edx*4 - 4], edi
mov edx, dword [0x4ac0bc]
or edx, 0xb29ac6e4
mov dword [0x4ac0bc], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x40], ecx
call fcn.00413430
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x42978e
jmp 0x429f31
mov ax, word [0x4910d0]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x4910d0], dx
movsx ecx, ax
mov ax, word [0x493e3c]
movsx esi, ax
sar esi, 0xa
and ecx, esi
mov esi, dword [0x49c9c8]
add esi, ecx
mov dword [0x49c9c8], esi
cmp dword [esp + 0xd4], 1
jge 0x4297da
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x4297f2
mov eax, dword [esp + 0xd4]
sub eax, 1
mov ecx, dword [esp + 0xc0]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov ecx, 0x26a87b6b
mov edx, dword [esp + 0xa8]
mov dword [edx], eax
mov eax, dword [0x49d6f4]
mov edx, eax
inc edx
mov dword [0x49d6f4], edx
mov edx, dword [0x4ae9b8]
sub eax, edx
cmp ecx, eax
jg 0x429838
mov eax, dword [0x4ad6ac]
sar eax, 8
mov ecx, dword [0x49dff0]
xor ecx, eax
mov dword [0x49dff0], ecx
lea eax, [esp + 0xa0]
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xc0]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0xa8]
mov dword [edx + 4], ecx
mov ecx, dword [0x4ac274]
not ecx
add ecx, 0x9b0540ef
mov edx, dword [0x49f624]
imul edx, ecx
mov dword [0x49f624], edx
mov ecx, dword [esp + 0xdc]
sub ecx, dword [esp + 0xd4]
sub ecx, 1
mov edx, dword [esp + 0xb4]
mov ecx, dword [edx + ecx*4]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004408e0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x4298b7
jmp 0x429f31
lea eax, [esp + 0x94]
xor ecx, ecx
mov word [0x4971f6], 0x10bb
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x38], ecx
call fcn.00413430
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x4298f2
jmp 0x429f31
mov eax, 0x20408540
mov ecx, dword [0x4a48f4]
xor ecx, 0xffffffff
cmp eax, ecx
jle 0x429917
mov eax, dword [0x49f630]
or eax, 0x1f2da44
mov dword [0x49f630], eax
cmp dword [esp + 0xdc], 2
jge 0x429930
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x429948
mov eax, dword [esp + 0xdc]
sub eax, 2
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x9c]
mov dword [ecx], eax
mov dx, word [0x49b354]
mov ax, dx
add eax, 0x7f5d7b33
mov dx, ax
mov word [0x49b354], dx
cmp dword [esp + 0xdc], 1
jge 0x429987
xor eax, eax
mov dword [esp + 0x30], eax
jmp 0x42999f
mov eax, dword [esp + 0xdc]
sub eax, 1
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x9c]
mov dword [ecx + 4], eax
mov eax, dword [0x4a8ba8]
dec eax
mov dword [0x4a8ba8], eax
mov dx, word [0x49a066]
movsx ecx, dx
and eax, ecx
mov ecx, dword [0x4a2000]
imul ecx, eax
mov dword [0x4a2000], ecx
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x9c]
mov dword [ecx + 8], eax
mov eax, dword [0x4a3850]
not eax
add eax, 0xd24ac807
xor eax, 0x45658520
mov ecx, dword [0x4aa704]
or ecx, eax
mov dword [0x4aa704], ecx
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00439d30
cmp eax, 0
jg 0x429718
lea eax, [esp + 0xa0]
lea ecx, [esp + 0xb8]
mov edx, dword [0x4a730c]
add edx, 0xb9fffadf
mov dword [0x4a730c], edx
mov edx, dword [esp + 0xdc]
sub edx, dword [esp + 0xd4]
sub edx, 1
mov esi, dword [esp + 0xb4]
mov edx, dword [esi + edx*4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004408e0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x429a90
jmp 0x429f31
lea eax, [esp + 0xa0]
mov cx, word [0x497f5e]
movsx edx, cx
sar edx, 5
mov esi, dword [0x4a542c]
xor edx, esi
xor edx, 0x7af76668
mov dword [0x4a542c], edx
mov edx, dword [esp + 0xdc]
sub edx, dword [esp + 0xd4]
sub edx, 1
shl edx, 5
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040bff0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x429aed
jmp 0x429f31
lea eax, [esp + 0xc4]
lea ecx, [esp + 0xa0]
mov edx, dword [0x49dcc0]
mov esi, dword [0x49cb30]
lea edx, [edx + esi + 0x5cc1af3f]
mov dword [0x49cb30], edx
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0042cd90
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x429b39
jmp 0x429f31
lea eax, [esp + 0xc4]
xor ecx, ecx
mov edx, dword [0x49fb4c]
or edx, 0x46002934
mov dword [0x49fb4c], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x2c], ecx
call fcn.004400e0
cmp eax, 0
jge 0x429cac
lea eax, [esp + 0xa0]
lea ecx, [esp + 0xb8]
mov dword [0x49ebc8], 0xc2260afa
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00441540
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x429baa
jmp 0x429f31
lea eax, [esp + 0xa0]
mov dword [0x4a638c], 0x1a68998f
mov ecx, dword [esp + 0xdc]
sub ecx, dword [esp + 0xd4]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040bff0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x429bf0
jmp 0x429f31
lea eax, [esp + 0xc4]
lea ecx, [esp + 0xa0]
mov dx, word [0x4918c6]
movsx esi, dx
and esi, 0xa653a5c8
mov edi, dword [0x4a8f18]
sub edi, esi
mov dword [0x4a8f18], edi
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0040e4c0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x429c41
jmp 0x429f31
mov ax, word [0x491f2c]
mov cx, ax
add ecx, 0x79cbccee
mov ax, cx
mov word [0x491f2c], ax
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xd4]
sub ecx, edx
mov edx, dword [esp + 0xb4]
mov esi, dword [edx + ecx*4 - 4]
dec esi
mov dword [edx + ecx*4 - 4], esi
mov ax, word [0x4913f4]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x4913f4], ax
and ecx, 0x4d10
mov ax, word [0x4971de]
mov dx, ax
or ecx, edx
or ecx, 0x30cb
mov ax, cx
mov word [0x4971de], ax
mov ax, word [0x4925e8]
mov cx, ax
and ecx, 0xea1c
mov ax, cx
mov word [0x4925e8], ax
mov eax, dword [esp + 0xdc]
add eax, 0xffffffff
mov dword [esp + 0xdc], eax
jmp 0x428e7a
mov eax, dword [0x49fb7c]
add eax, 0x89cb466e
cmp eax, 0x4f3e5e25
jle 0x429d15
mov eax, dword [0x4a7720]
mov ecx, eax
inc ecx
mov dword [0x4a7720], ecx
mov ecx, 0x2801261d
sub ecx, eax
mov eax, dword [0x4a9d78]
xor eax, ecx
mov dword [0x4a9d78], eax
jmp 0x429d24
mov eax, dword [0x4a4860]
or eax, 0x7cd0fe3
mov dword [0x4a4860], eax
cmp dword [esp + 0xe4], 0
je 0x429dee
mov eax, dword [0x49f488]
imul eax, eax, 0x55f3b680
mov cx, word [0x4923bc]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x4923bc], cx
mov eax, dword [esp + 0xe4]
mov edx, esp
lea esi, [esp + 0xac]
mov dword [edx + 4], esi
mov dword [edx], eax
call fcn.00441540
mov edx, dword [0x49d3bc]
add edx, 0x9231e334
mov dword [0x49d3bc], edx
mov edx, dword [esp + 0xec]
mov edx, dword [edx]
mov esi, dword [esp + 0xf0]
mov esi, dword [esi]
imul edx, esi
mov esi, dword [esp + 0xe4]
mov dword [esi], edx
mov edx, dword [0x49daf4]
xor edx, 0xffffffff
and edx, 0x162682d7
cmp edx, 0x8fbe3c2b
mov dword [esp + 0x28], eax
jle 0x429dd1
mov eax, dword [0x4aef78]
imul eax, eax, 0x4068a820
mov dword [0x4aef78], eax
jmp 0x429de9
mov ax, word [0x4991b8]
mov cx, ax
add ecx, 0xcb6d5f71
mov ax, cx
mov word [0x4991b8], ax
jmp 0x429dee
mov eax, 0x280e75d9
mov cx, word [0x495526]
mov dx, cx
dec edx
mov cx, dx
mov word [0x495526], cx
movsx edx, cx
or edx, 0xa81c266b
cmp eax, edx
jne 0x429e28
mov eax, dword [0x4a6458]
add eax, 0xb441a07f
mov dword [0x4a6458], eax
cmp dword [esp + 0xe8], 0
je 0x429f22
xor eax, eax
mov ecx, dword [0x4accf4]
add ecx, 0xb3f2aed1
mov dword [0x4accf4], ecx
mov ecx, dword [esp + 0xd0]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0xc4]
mov dword [edx], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
call fcn.004337e0
mov ecx, dword [0x4a2610]
sar ecx, 0xa
mov dword [0x49e730], ecx
mov ecx, dword [esp + 0xe8]
mov edx, esp
mov esi, dword [esp + 0x20]
mov dword [edx + 4], esi
mov dword [edx], ecx
mov dword [esp + 0x1c], eax
call fcn.00441540
mov ecx, dword [0x4a59f0]
and ecx, 0x42f67bae
mov dword [0x4a59f0], ecx
mov ecx, dword [esp + 0xec]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xe8]
mov dword [edx], ecx
mov di, word [0x498dc6]
movsx ecx, di
add ecx, 0x8b15df89
mov edx, dword [0x49fc4c]
imul edx, ecx
mov dword [0x49fc4c], edx
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x18], eax
call fcn.004400e0
cmp eax, 0
jne 0x429f0a
mov eax, dword [esp + 0xe8]
mov dword [eax], 1
mov ax, word [0x492752]
mov cx, ax
add ecx, 0x8af2e920
mov ax, cx
mov word [0x492752], ax
mov eax, dword [0x49ff40]
xor eax, 0x3740878b
mov dword [0x49ff40], eax
mov eax, esp
lea ecx, [esp + 0x94]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xa0]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xac]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xb8]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xc4]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.0042f6c0
mov eax, dword [0x49e520]
inc eax
mov dword [0x49e520], eax
mov ecx, dword [0x49f6bc]
imul ecx, eax
mov dword [0x49f6bc], ecx
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0xf4]
add esp, 0xf8
pop esi
pop edi
pop ebx
ret