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

Disassembly:
push ebx
push edi
push esi
sub esp, 0xfc
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
mov esi, dword [esp + 0x10c]
xor edi, edi
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xec], edx
mov dword [esp + 0xe8], esi
mov eax, dword [0x4aa8a8]
and eax, 0x33ddfd64
mov dword [0x4aa8a8], eax
mov eax, dword [0x4a1954]
mov ecx, eax
inc ecx
mov dword [0x4a1954], ecx
mov ecx, 0x87722c37
sub ecx, eax
or ecx, 0xb75c1910
mov dword [0x4a1a40], ecx
mov eax, dword [0x4a5864]
mov ecx, dword [0x49d438]
shl ecx, 6
sub eax, ecx
xor eax, 0x62b7bcfc
mov ecx, dword [0x4a8ca4]
add ecx, eax
mov dword [0x4a8ca4], ecx
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x74], edi
call fcn.00411480
cmp eax, 0
jne 0x421d8a
mov dword [esp + 0xf8], 0xfffffff4
jmp 0x423929
mov eax, dword [0x4a4b18]
mov ecx, eax
dec ecx
mov dword [0x4a4b18], ecx
xor eax, 0x314815c0
or eax, 0xccb7623f
mov ecx, dword [0x4a0434]
sub ecx, eax
mov dword [0x4a0434], ecx
mov eax, esp
lea ecx, [esp + 0x98]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xa4]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xb0]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xbc]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xc8]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.0044e0f0
mov eax, dword [0x4a642c]
add eax, 0xffffed4e
mov dword [0x4a642c], eax
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435b30
cmp eax, 0
jge 0x421f22
mov eax, dword [0x4a5594]
add eax, 0x89debf81
mov dword [0x4a5594], eax
cmp dword [esp + 0xe8], 0
je 0x421e75
xor eax, eax
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x70], eax
call fcn.0041f7d0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x421e70
jmp 0x4238a0
jmp 0x421e75
mov eax, dword [0x4aac14]
add eax, 0x2fe98fef
mov dword [0x4aac14], eax
cmp dword [esp + 0xec], 0
je 0x421ec6
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00429b60
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x421ec1
jmp 0x4238a0
jmp 0x421ec6
mov ax, word [0x4961c0]
movsx ecx, ax
and ecx, 0x2e50bd9d
cmp ecx, 0xa642bf46
je 0x421f12
mov eax, 0xa470253d
mov ecx, dword [0x4a150c]
xor ecx, 0xffffffff
sub ecx, 0xe168bd90
cmp eax, ecx
jl 0x421f0d
mov eax, dword [0x4a97c8]
imul eax, eax, 0x9fc9c3e7
mov dword [0x4a97c8], eax
jmp 0x421f12
mov dword [esp + 0xf8], 0
jmp 0x423929
lea eax, [esp + 0xc8]
mov ecx, dword [0x4a5b30]
add ecx, 0xe05cf748
mov dword [0x4a5b30], ecx
mov ecx, dword [esp + 0xf0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00429b60
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x421f63
jmp 0x4238a0
lea eax, [esp + 0xbc]
mov ecx, dword [0x49e6f4]
sar ecx, 5
mov edx, dword [0x49d158]
xor edx, ecx
mov dword [0x49d158], edx
mov ecx, dword [esp + 0xf4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00429b60
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x421fa9
jmp 0x4238a0
mov eax, dword [0x49dea4]
add eax, 0x7b6f75b6
and eax, 0xdc228508
cmp eax, 0xdea5bf7d
je 0x421ff7
mov eax, 0x3cdd8171
mov cx, word [0x495fec]
movsx edx, cx
cmp eax, edx
jge 0x421ff2
mov ax, word [0x4984fa]
mov cx, ax
imul ecx, ecx, 0x63438d89
mov ax, cx
mov word [0x4984fa], ax
jmp 0x421ff7
lea eax, [esp + 0xb0]
mov dword [esp + 0xbc], 1
mov dword [esp + 0xc8], 1
mov ecx, dword [0x4a879c]
add ecx, 0x98daf4be
mov dword [0x4a879c], ecx
mov ecx, dword [esp + 0xf0]
mov ecx, dword [ecx + 4]
add ecx, 2
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004042e0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x422054
jmp 0x4238a0
lea eax, [esp + 0xb0]
xor ecx, ecx
mov edx, dword [0x49cebc]
add edx, 0x2282914f
xor edx, 0xac97948d
mov esi, dword [0x4a6078]
or esi, edx
mov dword [0x4a6078], esi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x6c], ecx
call fcn.0041f7d0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4220a6
jmp 0x4238a0
lea eax, [esp + 0xa4]
mov ecx, 2
mov edx, dword [0x4a2360]
and edx, 0xd7d497ff
mov dword [0x4a2360], edx
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x68], ecx
call fcn.004042e0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4220ed
jmp 0x4238a0
mov eax, 0x3dec1329
mov cx, word [0x496802]
movsx edx, cx
sub edx, 0xd389b44c
cmp eax, edx
jge 0x422119
mov eax, dword [0x49dc50]
add eax, 0xf409108a
mov dword [0x49dc50], eax
lea eax, [esp + 0x98]
mov ecx, 3
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x64], ecx
call fcn.004042e0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x42214e
jmp 0x4238a0
mov eax, dword [0x4a8978]
imul eax, eax, 0x58aa58f9
mov ecx, dword [0x4aa580]
xor ecx, eax
mov dword [0x4aa580], ecx
mov eax, esp
lea ecx, [esp + 0xbc]
mov dword [eax], ecx
call fcn.0042d7c0
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x1b
mov edx, eax
add edx, ecx
and edx, 0xffffffe0
sub eax, edx
mov dword [esp + 0xd4], eax
mov si, word [0x4962d8]
movsx eax, si
xor eax, 0xdebecbf5
mov ecx, dword [0x4a04ec]
imul ecx, eax
mov dword [0x4a04ec], ecx
cmp dword [esp + 0xd4], 0x1f
jge 0x4222d0
lea eax, [esp + 0xc8]
mov dword [0x4a6228], 0xf4df22aa
mov ecx, dword [esp + 0xd4]
mov edx, 0x1f
sub edx, ecx
mov dword [esp + 0xd4], edx
mov ecx, dword [0x4aa2f8]
xor ecx, 0x7fbe
mov si, word [0x499d9e]
mov dx, si
add edx, ecx
mov si, dx
mov word [0x499d9e], si
mov ecx, dword [esp + 0xd4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00403470
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x42222b
jmp 0x4238a0
mov eax, 0xa2515683
mov ecx, dword [0x4ac414]
mov edx, ecx
dec edx
mov dword [0x4ac414], edx
sub ecx, 0xeb33bb5f
sub ecx, 0xc7b5e417
cmp eax, ecx
jg 0x422262
mov eax, dword [0x4a1b78]
and eax, 0x33bf415a
mov dword [0x4a1b78], eax
lea eax, [esp + 0xbc]
mov ecx, dword [esp + 0xd4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00403470
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x422291
jmp 0x4238a0
mov eax, 0x7a8d5c38
mov ecx, dword [0x4aa5c4]
dec ecx
mov dword [0x4aa5c4], ecx
mov edx, dword [0x49df80]
sub eax, edx
cmp ecx, eax
jg 0x4222cb
mov eax, dword [0x4a7804]
mov ecx, dword [0x4aab7c]
imul ecx, ecx, 0xc7414b8c
add eax, ecx
mov dword [0x4a793c], eax
jmp 0x4222db
mov dword [esp + 0xd4], 0
mov eax, 0xf9ffdbdd
mov cx, word [0x496574]
movsx edx, cx
cmp eax, edx
je 0x422314
mov ax, word [0x498e80]
movsx ecx, ax
imul ecx, ecx, 0xa3e720ef
mov edx, dword [0x49f360]
xor edx, ecx
mov dword [0x49f360], edx
jmp 0x4223b9
mov eax, 0xf014a25e
mov ecx, dword [0x4a2558]
mov edx, dword [0x4a88a8]
imul edx, ecx
shl edx, 4
mov si, word [0x49aa46]
mov cx, si
dec ecx
mov di, cx
mov word [0x49aa46], di
movsx ecx, si
imul edx, ecx
cmp eax, edx
jge 0x422393
mov ax, word [0x495942]
movsx ecx, ax
imul ecx, ecx, 0x97200842
mov edx, dword [0x4a5a54]
mov ax, word [0x49a908]
mov si, ax
inc esi
mov ax, si
mov word [0x49a908], ax
movsx esi, ax
sub edx, esi
xor edx, 0x80e2126a
cmp ecx, edx
jl 0x42238e
jmp 0x42238e
jmp 0x4223b4
mov eax, dword [0x4a7888]
add eax, 0xd15d39ac
mov cx, word [0x49583a]
mov dx, cx
imul edx, eax
mov cx, dx
mov word [0x49583a], cx
jmp 0x4223b9
mov eax, dword [esp + 0xcc]
dec eax
mov dword [esp + 0xdc], eax
mov eax, dword [0x49c718]
shl eax, 6
and eax, 0xf4fae280
mov cx, word [0x49aa62]
mov dx, cx
inc edx
mov cx, dx
mov word [0x49aa62], cx
movsx edx, cx
xor eax, edx
mov dword [0x4a66cc], eax
mov eax, dword [esp + 0xc0]
dec eax
mov dword [esp + 0xd8], eax
mov eax, dword [0x4a93cc]
not eax
mov cx, word [0x498934]
mov dx, cx
inc edx
mov si, dx
mov word [0x498934], si
movsx edx, cx
and eax, edx
mov edx, dword [0x4ac5d4]
sub edx, eax
mov dword [0x4ac5d4], edx
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xd8]
sub eax, edx
shl eax, 5
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0xbc]
mov dword [edx], eax
call fcn.00403470
mov cx, word [0x495d3a]
mov dx, cx
dec edx
mov si, dx
mov word [0x495d3a], si
movsx edx, cx
add edx, 0xefa52e97
mov edi, dword [0x4a35c0]
mov cx, word [0x49444e]
mov bx, cx
dec ebx
mov si, bx
mov word [0x49444e], si
movsx ebx, cx
or edi, ebx
cmp edx, edi
mov dword [esp + 0x60], eax
jg 0x4224b5
mov eax, dword [0x49e1e8]
mov ecx, dword [0x49f220]
xor ecx, eax
mov dword [0x49f220], ecx
jmp 0x4224ba
lea eax, [esp + 0xc8]
lea ecx, [esp + 0xbc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00411670
cmp eax, 0
jl 0x42260c
mov eax, 0xbbbc0153
mov ecx, dword [0x4a5414]
sar ecx, 7
imul ecx, ecx, 0x4cef83ab
xor ecx, 0xbb09bffb
cmp eax, ecx
jl 0x422558
mov eax, dword [0x49e1c4]
mov ecx, dword [0x4abf14]
mov edx, ecx
inc edx
mov dword [0x4abf14], edx
add eax, ecx
mov ecx, dword [0x4a26fc]
inc ecx
mov dword [0x4a26fc], ecx
mov edx, dword [0x4a251c]
sar edx, 3
imul edx, edx, 0x582d17
xor ecx, edx
cmp eax, ecx
jle 0x422553
mov ax, word [0x499ab6]
mov cx, ax
and ecx, 0x709e
mov ax, cx
mov word [0x499ab6], ax
jmp 0x422558
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
sub eax, ecx
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + eax*4]
inc edx
mov dword [ecx + eax*4], edx
mov si, word [0x4978be]
movsx eax, si
and eax, 0x6e02912
mov ecx, dword [0x4a0748]
sar ecx, 2
cmp eax, ecx
jge 0x4225ca
mov ax, word [0x49a790]
movsx ecx, ax
mov edx, dword [0x4a4e70]
shl edx, 3
add ecx, edx
cmp ecx, 0x5a275a85
jle 0x4225c5
mov eax, dword [0x49f138]
or eax, 0xa1002008
mov dword [0x49f138], eax
jmp 0x4225ca
mov eax, esp
lea ecx, [esp + 0xbc]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc8]
mov dword [eax + 4], ecx
mov dword [eax], ecx
call fcn.0041b590
mov ecx, dword [0x4ac48c]
shl ecx, 4
mov edx, 0xab7ac70
sub edx, ecx
and edx, 0xd3f84b60
mov dword [0x49e864], edx
mov dword [esp + 0x5c], eax
jmp 0x4224ba
mov eax, dword [0x4a15b0]
imul eax, eax, 0xffc0cce2
mov dword [0x4a15b0], eax
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xbc]
mov dword [ecx], eax
call fcn.0040f190
mov ecx, dword [0x4a51ac]
add ecx, 0x21d03d0c
and ecx, 0x248559f0
cmp ecx, 0xd7edf405
mov dword [esp + 0x58], eax
jne 0x42267d
mov eax, dword [0x4ab628]
imul eax, eax, 0x9b6b2088
mov ecx, dword [0x4a3dc0]
xor ecx, eax
mov dword [0x4a3dc0], ecx
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xe0]
cmp eax, dword [esp + 0xd8]
jle 0x4235a6
mov eax, dword [0x4a494c]
and eax, 0x521efbfb
mov dword [0x4a494c], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xc4]
cmp eax, dword [edx + ecx*4]
jb 0x4226fa
mov eax, dword [esp + 0xe0]
sub eax, dword [esp + 0xd8]
sub eax, 1
mov ecx, dword [esp + 0xb8]
mov dword [ecx + eax*4], 0xffffffff
jmp 0x422e9a
mov eax, 0x6c96110a
mov cx, word [0x4960ca]
movsx edx, cx
mov esi, dword [0x4a6644]
shl esi, 7
or edx, esi
cmp eax, edx
je 0x422744
mov ax, word [0x495982]
movsx ecx, ax
imul ecx, ecx, 0xf883a84
xor ecx, 0x71b49235
mov edx, dword [0x4a8dc0]
and edx, ecx
mov dword [0x4a8dc0], edx
jmp 0x42275e
mov ax, word [0x499baa]
movsx ecx, ax
shl ecx, 4
mov edx, dword [0x4a4abc]
or edx, ecx
mov dword [0x4a4abc], edx
mov eax, dword [0x4a84c0]
sar eax, 1
xor eax, 0xb899eeeb
cmp eax, 0xfb6b6fff
jl 0x42278a
mov eax, dword [0x4a15b4]
or eax, 0x70b9c5ff
mov dword [0x4a15b4], eax
jmp 0x422801
mov eax, dword [0x49db80]
xor eax, 0x831d36c9
mov ecx, dword [0x4a6844]
mov edx, ecx
dec edx
mov dword [0x4a6844], edx
sub ecx, 0x14c95fa
xor ecx, 0xfbddd9bc
cmp eax, ecx
jg 0x4227e1
mov eax, 0xdbf7ffdf
mov ecx, dword [0x4ac0f4]
dec ecx
mov dword [0x4ac0f4], ecx
add ecx, 0x225a895e
cmp eax, ecx
je 0x4227dc
jmp 0x4227dc
jmp 0x4227fc
mov eax, dword [0x4a48ec]
not eax
imul eax, eax, 0x997d2c21
mov ecx, dword [0x4a50bc]
add ecx, eax
mov dword [0x4a50bc], ecx
jmp 0x422801
mov eax, 0x541503ad
mov ecx, dword [0x4aba08]
imul ecx, ecx, 0x5a266fc9
mov dword [0x4aba08], ecx
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xc4]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x7c], ecx
mov ecx, dword [0x4a5bbc]
mov edx, dword [0x49f60c]
imul edx, ecx
mov dword [0x49f60c], edx
movzx ecx, word [esp + 0x7c]
mov dword [esp + 0x84], ecx
mov si, word [0x49414c]
mov cx, si
add ecx, 0xc208ed86
mov si, cx
mov word [0x49414c], si
movzx ecx, word [esp + 0x7e]
mov dword [esp + 0x80], ecx
mov ecx, dword [0x4a2ca8]
dec ecx
mov dword [0x4a2ca8], ecx
cmp eax, ecx
jl 0x4228a6
mov ax, word [0x4952f2]
movsx ecx, ax
xor ecx, 0x5fddff6f
mov edx, dword [0x4ab424]
add edx, ecx
mov dword [0x4ab424], edx
mov eax, 0x27ad09d4
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xd0]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x80]
xor esi, esi
mov dword [esp + 0x54], eax
mov eax, ecx
mov dword [esp + 0x50], edx
mov edx, esi
mov ecx, dword [esp + 0x50]
div ecx
mov dword [esp + 0x90], eax
mov di, word [0x49b304]
mov ax, di
or eax, 0x53c2
mov di, ax
mov word [0x49b304], di
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x90]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x88], eax
mov eax, dword [0x4aa804]
sar eax, 8
imul eax, eax, 0x440911bd
mov ecx, dword [0x4abef8]
add ecx, eax
mov dword [0x4abef8], ecx
mov eax, dword [esp + 0x88]
shl eax, 0x10
mov dword [esp + 0x88], eax
mov di, word [0x49ae92]
mov ax, di
inc eax
mov bx, ax
mov word [0x49ae92], bx
movsx eax, di
mov ecx, dword [0x4a4c58]
mov edx, ecx
dec edx
mov dword [0x4a4c58], edx
sub eax, ecx
mov ecx, dword [esp + 0x54]
cmp ecx, eax
jge 0x42299c
mov ax, word [0x49bc26]
mov cx, ax
or ecx, 0x49ad
mov ax, cx
mov word [0x49bc26], ax
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd0]
movzx eax, word [ecx + eax*4 - 2]
mov ecx, dword [esp + 0x88]
or ecx, eax
mov dword [esp + 0x88], ecx
mov dx, word [0x494edc]
movsx eax, dx
shl eax, 4
imul eax, eax, 0x12c765a7
cmp eax, 0xcbc6017b
jle 0x4229ec
mov eax, dword [0x4a63b0]
add eax, 0x5eff7bf4
mov dword [0x4a63b0], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x84]
imul eax, ecx
mov dword [esp + 0x78], eax
mov word [0x496e1c], 0x4f7e
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x78]
jae 0x422b2b
mov ax, word [0x494b72]
mov cx, ax
imul ecx, ecx, 0x63adbf85
mov ax, cx
mov word [0x494b72], ax
mov ecx, dword [esp + 0x90]
dec ecx
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x88]
add edx, ecx
mov dword [esp + 0x88], edx
mov ax, word [0x496890]
mov cx, ax
add ecx, 0x87f5dbda
mov ax, cx
mov word [0x496890], ax
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x7c]
mov byte [esp + 0x4f], cl
jb 0x422a99
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x78]
setb cl
mov byte [esp + 0x4f], cl
mov al, byte [esp + 0x4f]
test al, 1
jne 0x422aaa
jmp 0x422ad2
mov eax, dword [esp + 0x90]
add eax, 0xffffffff
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x88]
mov dword [esp + 0x88], eax
jmp 0x422a6e
mov eax, 0x33ca93f5
mov ecx, dword [0x4a0174]
mov dx, word [0x4985b6]
movsx esi, dx
xor ecx, esi
cmp eax, ecx
jge 0x422b26
mov eax, dword [0x4abc40]
sar eax, 4
and eax, 0xf4a258bc
cmp eax, 0x1ce13188
je 0x422b21
mov ax, word [0x4981c2]
mov cx, ax
add ecx, 0xf76ffbff
mov ax, cx
mov word [0x4981c2], ax
jmp 0x422b26
jmp 0x422b2b
mov eax, 0x5fe8e9dc
mov ecx, dword [0x4aaff8]
mov edx, ecx
inc edx
mov dword [0x4aaff8], edx
or ecx, 0xa27f49f1
and ecx, 0xb6ffeff9
mov edx, dword [0x4a3f54]
imul edx, ecx
mov dword [0x4a3f54], edx
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x88]
sub edx, ecx
mov dword [esp + 0x88], edx
mov si, word [0x49851a]
mov cx, si
xor ecx, 0xa9c1
mov si, cx
mov word [0x49851a], si
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x80]
xor edi, edi
mov dword [esp + 0x48], eax
mov eax, ecx
mov dword [esp + 0x44], edx
mov edx, edi
mov ecx, dword [esp + 0x44]
div ecx
mov dword [esp + 0x94], eax
mov eax, dword [0x4a11ec]
or eax, 0x9f6caaf4
mov dword [0x4a11ec], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x94]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x8c], eax
mov eax, dword [0x4abdb4]
add eax, 0x1420c901
mov dword [0x4abdb4], eax
mov eax, dword [esp + 0x8c]
shl eax, 0x10
mov dword [esp + 0x8c], eax
mov eax, dword [0x49cc7c]
add eax, 0x9f5fbcbe
mov dword [0x49cc7c], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd0]
movzx eax, word [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x8c]
or ecx, eax
mov dword [esp + 0x8c], ecx
mov eax, dword [0x4ac0bc]
shl eax, 5
or eax, 0x6dfb3d22
mov ecx, dword [0x4a20d8]
sub ecx, eax
mov dword [0x4a20d8], ecx
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x84]
imul eax, ecx
mov dword [esp + 0x78], eax
mov si, word [0x4941fc]
movsx eax, si
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jle 0x422c90
mov eax, dword [0x4aa844]
mov ecx, dword [0x4a31ec]
lea eax, [eax + ecx - 0x29155436]
mov dword [0x4a31ec], eax
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x78]
jae 0x422de1
mov eax, 0x40a114bd
mov cx, word [0x497f4e]
mov dx, cx
imul edx, edx, 0xa409d801
mov cx, dx
mov word [0x497f4e], cx
mov edx, dword [esp + 0x94]
dec edx
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x8c]
add esi, edx
mov dword [esp + 0x8c], esi
mov edx, dword [0x4a71dc]
cmp eax, edx
jg 0x422d1f
mov eax, dword [0x4a5b30]
mov ecx, eax
inc ecx
mov dword [0x4a5b30], ecx
or eax, 0xb40a
mov dx, word [0x497ad6]
mov cx, dx
add ecx, eax
mov dx, cx
mov word [0x497ad6], dx
jmp 0x422d69
mov eax, dword [0x4a19d8]
mov ecx, eax
inc ecx
mov dword [0x4a19d8], ecx
mov ecx, dword [0x4a9af8]
dec ecx
mov dword [0x4a9af8], ecx
sub eax, ecx
and eax, 0xb36b4b09
cmp eax, 0x3af369ba
jl 0x422d64
mov ax, word [0x4956da]
mov cx, ax
add ecx, 0xb6ba76ef
mov ax, cx
mov word [0x4956da], ax
jmp 0x422d69
jmp 0x422d6e
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x7c]
mov byte [esp + 0x43], cl
jb 0x422d99
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x78]
setb cl
mov byte [esp + 0x43], cl
mov al, byte [esp + 0x43]
test al, 1
jne 0x422daa
jmp 0x422dd2
mov eax, dword [esp + 0x94]
add eax, 0xffffffff
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x8c]
mov dword [esp + 0x8c], eax
jmp 0x422d6e
mov eax, dword [0x4ac1b8]
add eax, 0xd97d85c5
mov dword [0x4ac1b8], eax
mov eax, dword [0x49d918]
or eax, 0xf5b78702
mov dword [0x49d918], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x8c]
sub ecx, eax
mov dword [esp + 0x8c], ecx
mov dx, word [0x496566]
mov ax, dx
inc eax
mov si, ax
mov word [0x496566], si
movsx eax, dx
mov ecx, dword [0x49f9a4]
mov edi, ecx
dec edi
mov dword [0x49f9a4], edi
xor eax, ecx
or eax, 0x9a68fd12
mov dword [0x4a13d4], eax
mov eax, dword [esp + 0x90]
shl eax, 0x10
mov ecx, dword [esp + 0x94]
or eax, ecx
mov ecx, dword [esp + 0xe0]
mov edi, dword [esp + 0xd8]
sub ecx, edi
mov edi, dword [esp + 0xb8]
mov dword [edi + ecx*4 - 4], eax
mov dx, word [0x497ed6]
mov ax, dx
mov dx, word [0x49944c]
mov cx, dx
imul eax, ecx
mov ecx, 0xdfc7eba2
sub ecx, eax
mov dx, word [0x495a24]
mov ax, dx
imul eax, ecx
mov dx, ax
mov word [0x495a24], dx
mov eax, dword [0x49f510]
xor eax, 0xd34a0bc4
mov dword [0x49f510], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd8]
sub eax, ecx
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + eax*4 - 4]
inc edx
mov dword [ecx + eax*4 - 4], edx
mov eax, dword [0x4a3d50]
inc eax
mov dword [0x4a3d50], eax
xor eax, 0x128c248
mov si, word [0x496cda]
mov cx, si
inc ecx
mov di, cx
mov word [0x496cda], di
movsx ecx, si
add ecx, 0x819a9ffe
cmp eax, ecx
jge 0x422f1d
mov ax, word [0x49b294]
mov cx, ax
mov ax, word [0x497266]
mov dx, ax
imul edx, ecx
mov ax, dx
mov word [0x497266], ax
jmp 0x422f22
mov eax, dword [0x49f130]
mov ecx, eax
dec ecx
mov dword [0x49f130], ecx
mov dx, word [0x49bdca]
mov cx, dx
inc ecx
mov si, cx
mov word [0x49bdca], si
movsx ecx, dx
or ecx, 0xf298292b
cmp eax, ecx
jne 0x422f66
mov eax, dword [0x4a4734]
imul eax, eax, 0x13e3f15
mov dword [0x4a4734], eax
mov eax, 0x620b3e7f
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xd8]
sub ecx, edx
mov edx, dword [esp + 0xb8]
mov esi, dword [edx + ecx*4 - 4]
dec esi
mov dword [edx + ecx*4 - 4], esi
mov di, word [0x49b1f4]
movsx ecx, di
sar ecx, 9
xor ecx, 0x19f43859
cmp eax, ecx
jge 0x422fb5
mov eax, dword [0x4a8d78]
add eax, 0xe8bfb314
mov dword [0x4a8d78], eax
lea eax, [esp + 0xa4]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x3c], ecx
call fcn.0041f7d0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x422fe7
jmp 0x4238a0
mov eax, 0x489b8faf
mov ecx, dword [0x4a42ac]
shl ecx, 3
mov edx, dword [0x4a3fb4]
mov esi, edx
inc esi
mov dword [0x4a3fb4], esi
add edx, 0x95fc71
or ecx, edx
cmp eax, ecx
jle 0x423031
mov ax, word [0x49b0f6]
mov cx, ax
add ecx, 0xc66d23a7
mov ax, cx
mov word [0x49b0f6], ax
jmp 0x42303b
mov dword [0x4a7788], 0xd4cde7f
cmp dword [esp + 0xd8], 1
jge 0x423054
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x42306c
mov eax, dword [esp + 0xd8]
sub eax, 1
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xac]
mov dword [ecx], eax
mov dx, word [0x494f82]
mov ax, dx
add eax, 0x6f1b74a
mov dx, ax
mov word [0x494f82], dx
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xac]
mov dword [ecx + 4], eax
mov eax, dword [0x49c478]
dec eax
mov dword [0x49c478], eax
sub eax, 0xb59b22c6
or eax, 0x299b4566
cmp eax, 0x78f9fd6
jge 0x4230dc
mov eax, dword [0x4a979c]
xor eax, 0x4422586b
mov dword [0x4a1684], eax
lea eax, [esp + 0xa4]
mov ecx, dword [esp + 0xe0]
sub ecx, dword [esp + 0xd8]
sub ecx, 1
mov edx, dword [esp + 0xb8]
mov ecx, dword [edx + ecx*4]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00401280
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x423123
jmp 0x4238a0
lea eax, [esp + 0x98]
xor ecx, ecx
mov edx, dword [0x4a9340]
mov esi, edx
dec esi
mov dword [0x4a9340], esi
add edx, 0xd5e2d273
mov esi, dword [0x4a8ad0]
xor esi, edx
not esi
mov edx, dword [0x4a0308]
and edx, esi
mov dword [0x4a0308], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x34], ecx
call fcn.0041f7d0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x423182
jmp 0x4238a0
mov eax, dword [0x4a6c30]
xor eax, 0xbadd2207
mov dword [0x4a6c30], eax
cmp dword [esp + 0xe0], 2
jge 0x4231aa
xor eax, eax
mov dword [esp + 0x30], eax
jmp 0x4231c2
mov eax, dword [esp + 0xe0]
sub eax, 2
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xa0]
mov dword [ecx], eax
mov eax, dword [0x4a5d58]
xor eax, 0x85a01414
mov dword [0x4a5d58], eax
cmp dword [esp + 0xe0], 1
jge 0x4231f7
xor eax, eax
mov dword [esp + 0x2c], eax
jmp 0x42320f
mov eax, dword [esp + 0xe0]
sub eax, 1
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xa0]
mov dword [ecx + 4], eax
mov dx, word [0x4949c2]
mov ax, dx
add eax, 0x40eebec8
mov dx, ax
mov word [0x4949c2], dx
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xa0]
mov dword [ecx + 8], eax
mov eax, dword [0x4a72a8]
xor eax, 0x7f46a7bb
mov dword [0x4a72a8], eax
lea eax, [esp + 0xa4]
lea ecx, [esp + 0x98]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00411670
cmp eax, 0
jg 0x422f22
lea eax, [esp + 0xa4]
lea ecx, [esp + 0xbc]
mov edx, dword [0x4ac0a0]
mov si, word [0x49b966]
mov di, si
lea edx, [edx + edi - 0x4bd30f55]
mov si, dx
mov word [0x49b966], si
mov edx, dword [esp + 0xe0]
sub edx, dword [esp + 0xd8]
sub edx, 1
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + edx*4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00401280
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4232f2
jmp 0x4238a0
lea eax, [esp + 0xa4]
mov ecx, dword [0x4a9858]
or ecx, 0x7eafff7f
mov dword [0x4a9858], ecx
mov ecx, dword [esp + 0xe0]
sub ecx, dword [esp + 0xd8]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00403470
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x423340
jmp 0x4238a0
mov eax, 0xff66a7c6
mov ecx, dword [0x49f7c4]
xor ecx, 0x612d3102
cmp eax, ecx
jl 0x423368
mov eax, dword [0x4a0058]
xor eax, 0x9317e8b8
mov dword [0x4a0058], eax
lea eax, [esp + 0xc8]
lea ecx, [esp + 0xa4]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0041b590
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x42339b
jmp 0x4238a0
lea eax, [esp + 0xc8]
xor ecx, ecx
mov edx, dword [0x4a4268]
or edx, 0x97174b1a
mov dword [0x4a4268], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x28], ecx
call fcn.00411480
cmp eax, 0
jge 0x423565
lea eax, [esp + 0xa4]
lea ecx, [esp + 0xbc]
mov edx, dword [0x4a7168]
or edx, 0xfb89a358
mov dword [0x4a7168], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00429b60
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x423414
jmp 0x4238a0
mov eax, 0xda4c1057
mov ecx, dword [0x49d004]
and ecx, 0xdd729709
cmp eax, ecx
je 0x42347e
mov eax, dword [0x4a1384]
add eax, 0xde4facd
or eax, 0xcbc7d301
mov ecx, dword [0x49eff0]
or ecx, 0xd9214ea4
or ecx, 0x518042f3
cmp eax, ecx
je 0x423479
mov ax, word [0x49ad4e]
mov cx, ax
imul ecx, ecx, 0x5a8be71a
mov ax, word [0x499acc]
mov dx, ax
add edx, ecx
mov ax, dx
mov word [0x499acc], ax
jmp 0x42347e
lea eax, [esp + 0xa4]
mov ecx, dword [esp + 0xe0]
sub ecx, dword [esp + 0xd8]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00403470
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4234ba
jmp 0x4238a0
lea eax, [esp + 0xc8]
lea ecx, [esp + 0xa4]
mov edx, dword [0x4a9124]
imul edx, edx, 0x3eaa49e3
mov dword [0x4a9124], edx
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00403df0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4234ff
jmp 0x4238a0
mov eax, 0xfee8fffb
mov ecx, dword [0x4abdc0]
mov edx, ecx
inc edx
mov dword [0x4abdc0], edx
mov edx, dword [0x4a1268]
imul ecx, edx
imul ecx, ecx, 0x8e4c669b
mov dword [0x4a1268], ecx
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xd8]
sub ecx, edx
mov edx, dword [esp + 0xb8]
mov esi, dword [edx + ecx*4 - 4]
dec esi
mov dword [edx + ecx*4 - 4], esi
mov ecx, dword [0x4a8e58]
cmp eax, ecx
jg 0x423560
mov dword [0x49de0c], 0x697dba8f
jmp 0x423565
mov ax, word [0x4947ac]
movsx ecx, ax
mov ax, word [0x49a0b4]
movsx edx, ax
not edx
imul ecx, edx
add ecx, 0xeee6f8c5
mov edx, dword [0x4a7884]
xor edx, ecx
mov dword [0x4a7884], edx
mov eax, dword [esp + 0xe0]
add eax, 0xffffffff
mov dword [esp + 0xe0], eax
jmp 0x42268b
mov ax, word [0x498546]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x498546], dx
movsx ecx, ax
imul ecx, ecx, 0xdea34b3e
xor ecx, 0xd53c41b2
mov esi, dword [0x4a5870]
inc esi
mov dword [0x4a5870], esi
sub esi, 0x826573d
cmp ecx, esi
jle 0x42362e
mov eax, dword [0x4a368c]
add eax, 0x50985697
xor eax, 0xfef2c90a
mov ecx, dword [0x4a8ca4]
mov edx, ecx
dec edx
mov dword [0x4a8ca4], edx
add ecx, 0x98cc17b8
mov edx, dword [0x4a1258]
dec edx
mov dword [0x4a1258], edx
add ecx, edx
cmp eax, ecx
jl 0x423629
mov dword [0x4a104c], 0x5fee8d
jmp 0x42362e
cmp dword [esp + 0xe8], 0
je 0x4236f3
mov eax, 0x91ab0e7f
mov ecx, dword [0x4aa1e4]
sar ecx, 5
mov dx, word [0x497c60]
mov si, dx
dec esi
mov dx, si
mov word [0x497c60], dx
movsx esi, dx
sub eax, esi
sub eax, 0xd6980987
cmp ecx, eax
jle 0x42367b
mov dword [0x4a7f8c], 0x9d7fd9f3
mov eax, dword [esp + 0xe8]
mov ecx, esp
lea edx, [esp + 0xb0]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.00429b60
mov si, word [0x4967d0]
movsx ecx, si
imul ecx, ecx, 0x5c077d4
xor ecx, 0x48ea54db
cmp ecx, 0xe78d98fd
mov dword [esp + 0x24], eax
jg 0x4236cb
mov eax, dword [0x49e5d4]
imul eax, eax, 0x61f2189e
mov dword [0x49e5d4], eax
mov eax, dword [esp + 0xf0]
mov eax, dword [eax]
mov ecx, dword [esp + 0xf4]
mov ecx, dword [ecx]
imul eax, ecx
mov ecx, dword [esp + 0xe8]
mov dword [ecx], eax
mov dword [0x49fed4], 0xf10a3be6
mov eax, dword [0x49d5f8]
mov ecx, eax
inc ecx
mov dword [0x49d5f8], ecx
mov ecx, dword [0x4a9688]
sar ecx, 0xa
add eax, ecx
mov ecx, dword [0x4a0014]
and eax, ecx
and eax, 0x8cbdde0e
mov dword [0x4a0014], eax
cmp dword [esp + 0xec], 0
je 0x423881
mov eax, dword [0x4a9a50]
add eax, 0xa6c48f3c
mov dword [0x4a9a50], eax
mov eax, dword [esp + 0xd4]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xc8]
mov dword [ecx], eax
call fcn.0040f190
mov ecx, dword [0x4a3b64]
and ecx, 0x86a18852
mov edx, dword [0x4a8bc0]
and edx, 0xfd3a95bc
cmp ecx, edx
mov dword [esp + 0x20], eax
jg 0x42378e
mov eax, dword [0x49e9a4]
imul eax, eax, 0x534bebf6
mov dword [0x49e9a4], eax
jmp 0x42379d
mov eax, dword [0x4a3104]
or eax, 0xa75e153d
mov dword [0x4a3104], eax
xor eax, eax
mov ecx, dword [esp + 0xec]
mov edx, esp
lea esi, [esp + 0xc8]
mov dword [edx + 4], esi
mov dword [edx], ecx
mov dword [esp + 0x1c], eax
call fcn.00429b60
mov ecx, dword [0x4a3344]
add ecx, 0xff67fdb7
mov dword [0x4a3344], ecx
mov ecx, dword [esp + 0xf0]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xec]
mov dword [edx], ecx
mov ecx, dword [0x4a7a10]
xor ecx, 0x7f5fb6df
mov dword [0x4a7a10], ecx
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x18], eax
call fcn.00411480
cmp eax, 0
jne 0x423824
mov eax, dword [esp + 0xec]
mov dword [eax], 1
mov eax, 0x6c9a4635
mov ecx, dword [0x4abc2c]
shl ecx, 6
cmp eax, ecx
jne 0x42387c
mov eax, 0x74581643
mov ecx, dword [0x49f7a4]
inc ecx
mov dword [0x49f7a4], ecx
imul ecx, ecx, 0xbe432cba
cmp eax, ecx
jle 0x42386e
mov eax, dword [0x4a9b90]
add eax, 0xfde7bf77
mov dword [0x4a9b90], eax
jmp 0x423877
mov word [0x49a4ae], 0xfb7a
jmp 0x42387c
jmp 0x423881
mov eax, dword [0x49dabc]
shr eax, 1
xor eax, 0x1c423844
or eax, 0xa1b846b2
mov ecx, dword [0x4a4b98]
and ecx, eax
mov dword [0x4a4b98], ecx
mov eax, esp
lea ecx, [esp + 0x98]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xa4]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xb0]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xbc]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xc8]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.004014d0
mov eax, dword [0x49d648]
sar eax, 7
mov ecx, 0x50f12c90
sub ecx, eax
mov eax, dword [0x49eb3c]
mov edx, dword [0x4a23f4]
sar edx, 0xa
imul edx, edx, 0xff475c2c
or eax, edx
cmp ecx, eax
jl 0x42391b
mov eax, dword [0x4a3cfc]
xor eax, 0xde2c9bff
mov dword [0x4a3cfc], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xf8]
add esp, 0xfc
pop esi
pop edi
pop ebx
ret