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

Disassembly:
push edi
push esi
sub esp, 0x104
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x114]
mov esi, dword [esp + 0x110]
xor edi, edi
mov dword [esp + 0xfc], eax
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf0], esi
mov eax, dword [0x49aef0]
or eax, 0x94977a94
mov dword [0x49aef0], eax
mov eax, dword [0x49e800]
xor eax, 0x2ddab13d
mov ecx, dword [0x499818]
and ecx, eax
mov dword [0x499818], ecx
mov eax, dword [0x49eac4]
sar eax, 4
add eax, 0x39e97f75
mov dword [0x49f384], eax
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x7c], edi
call fcn.00444df0
cmp eax, 0
jne 0x4105cf
mov dword [esp + 0x100], 0xfffffff4
jmp 0x411fa1
mov eax, dword [0x49e27c]
sar eax, 9
add eax, 0xabbc578b
mov ecx, dword [0x49d070]
sub ecx, eax
mov dword [0x49d070], ecx
mov eax, esp
lea ecx, [esp + 0xa0]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xac]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xb8]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc4]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xd0]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.004278a0
mov eax, dword [0x49ea04]
imul eax, eax, 0x9889009f
mov dword [0x49ea04], eax
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0042fc70
cmp eax, 0
jge 0x41079a
mov eax, dword [0x49cdc0]
dec eax
mov dword [0x49cdc0], eax
and eax, 0x12dfa4de
cmp eax, 0x7974c60
jne 0x410686
mov eax, dword [0x4995a4]
add eax, 0x6ce7bf82
mov dword [0x4995a4], eax
cmp dword [esp + 0xf0], 0
je 0x4106cb
xor eax, eax
mov ecx, dword [esp + 0xf0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x78], eax
call fcn.0044b710
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x4106c6
jmp 0x411f39
jmp 0x4106cb
mov eax, 0xe9519478
mov ecx, dword [0x49a0bc]
xor ecx, 0xffffffff
and ecx, 0xce1ab99
cmp eax, ecx
jl 0x41071b
mov eax, dword [0x4a0fa0]
mov ecx, eax
inc ecx
mov dword [0x4a0fa0], ecx
imul eax, eax, 0xf7193671
xor eax, 0xaf29
mov dx, word [0x4a248e]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x4a248e], dx
jmp 0x41072a
mov eax, dword [0x499b38]
or eax, 0xcec40adf
mov dword [0x499b38], eax
cmp dword [esp + 0xf4], 0
je 0x41076c
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00427a30
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x410767
jmp 0x411f39
jmp 0x41076c
mov ax, word [0x4a4a34]
movsx ecx, ax
add ecx, 0x76b295ee
mov edx, dword [0x49fe34]
imul edx, ecx
mov dword [0x49fe34], edx
mov dword [esp + 0x100], 0
jmp 0x411fa1
lea eax, [esp + 0xd0]
mov dword [0x49b4b0], 0x8793938e
mov ecx, dword [esp + 0xf8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00427a30
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x4107d3
jmp 0x411f39
lea eax, [esp + 0xc4]
mov ecx, dword [0x49c0b4]
mov edx, ecx
inc edx
mov dword [0x49c0b4], edx
mov si, word [0x4a5272]
movsx edx, si
and ecx, edx
xor ecx, 0x8fc6dc6c
mov edx, dword [0x49a99c]
add edx, ecx
mov dword [0x49a99c], edx
mov ecx, dword [esp + 0xfc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00427a30
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x410831
jmp 0x411f39
lea eax, [esp + 0xb8]
mov ecx, dword [0x49cb9c]
imul ecx, ecx, 0xe967589
mov dword [0x49cb9c], ecx
mov dword [esp + 0xc4], 1
mov dword [esp + 0xd0], 1
mov ecx, dword [0x4a0b78]
dec ecx
mov dword [0x4a0b78], ecx
mov dx, word [0x4a158c]
mov si, dx
xor ecx, esi
xor ecx, 0xab5f
mov dx, cx
mov word [0x4a158c], dx
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 4]
add ecx, 2
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004208b0
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x4108b7
jmp 0x411f39
lea eax, [esp + 0xb8]
xor ecx, ecx
mov dword [0x499ba0], 0x1c7f05ca
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x74], ecx
call fcn.0044b710
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x4108f3
jmp 0x411f39
lea eax, [esp + 0xac]
mov ecx, 2
mov edx, dword [0x499b64]
or edx, 0x253e9356
mov dword [0x499b64], edx
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x70], ecx
call fcn.004208b0
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x41093a
jmp 0x411f39
lea eax, [esp + 0xa0]
mov ecx, 3
mov edx, dword [0x498b7c]
and edx, 0x3c8e2cf0
mov dword [0x498b7c], edx
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x6c], ecx
call fcn.004208b0
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x410981
jmp 0x411f39
mov eax, 0xd7419067
mov ecx, dword [0x499264]
imul ecx, ecx, 0xc8b93f7e
mov dword [0x499264], ecx
mov ecx, esp
lea edx, [esp + 0xc4]
mov dword [ecx], edx
mov dword [esp + 0x68], eax
call fcn.00431390
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x1b
mov edx, eax
add edx, ecx
and edx, 0xffffffe0
sub eax, edx
mov dword [esp + 0xdc], eax
mov eax, dword [0x49c988]
shl eax, 6
mov ecx, dword [0x49ad5c]
imul ecx, ecx, 0xb1e663ac
or eax, ecx
mov ecx, dword [esp + 0x68]
cmp ecx, eax
je 0x410a06
mov eax, dword [0x4a09ac]
add eax, 0xcb1fdd85
mov cx, word [0x4a21e6]
mov dx, cx
and edx, eax
mov cx, dx
mov word [0x4a21e6], cx
cmp dword [esp + 0xdc], 0x1f
jge 0x410af2
lea eax, [esp + 0xd0]
mov ecx, dword [0x49e6e8]
add ecx, 0x6db95b05
mov dword [0x49e6e8], ecx
mov ecx, dword [esp + 0xdc]
mov edx, 0x1f
sub edx, ecx
mov dword [esp + 0xdc], edx
mov ecx, dword [0x498920]
imul ecx, ecx, 0xeb3b7bba
mov edx, dword [0x49b544]
xor edx, ecx
mov dword [0x49b544], edx
mov ecx, dword [esp + 0xdc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00423780
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x410a84
jmp 0x411f39
lea eax, [esp + 0xc4]
mov ecx, dword [0x49d130]
add ecx, 0x155b1f41
mov dx, word [0x4a547c]
mov si, dx
xor esi, ecx
mov dx, si
mov word [0x4a547c], dx
mov ecx, dword [esp + 0xdc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00423780
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x410ad5
jmp 0x411f39
mov ax, word [0x4a4e9a]
mov cx, ax
add ecx, 0x3a0b11bf
mov ax, cx
mov word [0x4a4e9a], ax
jmp 0x410afd
mov dword [esp + 0xdc], 0
mov eax, 0xff3aaf22
mov ecx, dword [0x49ae68]
mov edx, dword [0x49be94]
inc edx
mov dword [0x49be94], edx
sub ecx, edx
cmp eax, ecx
jg 0x410b40
mov eax, dword [0x49ab4c]
dec eax
mov dword [0x49ab4c], eax
mov ecx, dword [0x49b04c]
and eax, ecx
mov ecx, dword [0x498b68]
and ecx, eax
mov dword [0x498b68], ecx
mov eax, dword [esp + 0xd4]
dec eax
mov dword [esp + 0xe4], eax
mov cx, word [0x4a38ea]
mov ax, cx
or eax, 0x1c18
mov cx, ax
mov word [0x4a38ea], cx
mov eax, dword [esp + 0xc8]
dec eax
mov dword [esp + 0xe0], eax
mov dword [0x49f43c], 0xfffefbff
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0xe0]
sub eax, edx
shl eax, 5
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0xc4]
mov dword [edx], eax
call fcn.00423780
mov edx, dword [0x49c400]
sar edx, 1
mov esi, dword [0x49b6f0]
inc esi
mov dword [0x49b6f0], esi
imul esi, esi, 0xf34c7801
or edx, esi
mov esi, dword [0x49eb64]
xor esi, edx
mov dword [0x49eb64], esi
mov dword [esp + 0x64], eax
lea eax, [esp + 0xd0]
lea ecx, [esp + 0xc4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00414fc0
cmp eax, 0
jl 0x410c84
mov eax, dword [0x4a04d8]
xor eax, 0xfb59e54a
mov ecx, dword [0x49c580]
sub ecx, eax
mov dword [0x49c580], ecx
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe0]
sub eax, ecx
mov ecx, dword [esp + 0xc0]
mov edx, dword [ecx + eax*4]
inc edx
mov dword [ecx + eax*4], edx
mov eax, dword [0x499084]
mov ecx, eax
inc ecx
mov dword [0x499084], ecx
and eax, 0xfd49
mov si, ax
mov word [0x4a30a8], si
mov eax, esp
lea ecx, [esp + 0xc4]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xd0]
mov dword [eax + 4], ecx
mov dword [eax], ecx
call fcn.00413d50
mov ecx, dword [0x49db1c]
imul ecx, ecx, 0xff7ff7fe
mov dword [0x49db1c], ecx
mov dword [esp + 0x60], eax
jmp 0x410bd6
mov word [0x4a1f4e], 0x6c97
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe0]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xc4]
mov dword [ecx], eax
call fcn.00442280
mov dx, word [0x4a5446]
mov cx, dx
dec ecx
mov dx, cx
mov word [0x4a5446], dx
movsx ecx, dx
add ecx, 0xf49f6772
mov esi, dword [0x4995ac]
xor esi, ecx
mov dword [0x4995ac], esi
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xe8]
cmp eax, dword [esp + 0xe0]
jle 0x411cd3
mov eax, 0x366f3105
mov cx, word [0x4a2e6e]
movsx edx, cx
add edx, 0xc7532e58
cmp eax, edx
jg 0x410d3a
mov ax, word [0x4a5330]
mov cx, ax
add ecx, 0xfa91683
mov ax, cx
mov word [0x4a5330], ax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xcc]
cmp eax, dword [edx + ecx*4]
jb 0x410d86
mov eax, dword [esp + 0xe8]
sub eax, dword [esp + 0xe0]
sub eax, 1
mov ecx, dword [esp + 0xc0]
mov dword [ecx + eax*4], 0xffffffff
jmp 0x4114b2
mov eax, 0x820b028c
mov ecx, dword [0x49ebd4]
or ecx, 0x3f175528
mov dword [0x49ebd4], ecx
mov ecx, dword [0x49ef9c]
xor ecx, 0x6ecefee5
mov dx, word [0x4a2f8e]
mov si, dx
inc esi
mov di, si
mov word [0x4a2f8e], di
movsx esi, dx
or ecx, esi
mov esi, dword [0x49f0c0]
add esi, ecx
mov dword [0x49f0c0], esi
mov dx, word [0x4a39e4]
movsx ecx, dx
cmp eax, ecx
jg 0x410ded
mov dword [0x49be68], 0x1a27d3e3
mov eax, 0x949996d4
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xcc]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x84], ecx
mov ecx, dword [0x4a01b8]
and ecx, 0xc4661926
mov dword [0x4a01b8], ecx
movzx ecx, word [esp + 0x84]
mov dword [esp + 0x8c], ecx
mov ecx, dword [0x49997c]
imul ecx, ecx, 0x9e229809
or ecx, 0x6cada3e9
mov edx, dword [0x499370]
xor edx, ecx
mov dword [0x499370], edx
movzx ecx, word [esp + 0x86]
mov dword [esp + 0x88], ecx
mov word [0x4a55fa], 0xfe03
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xd8]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x88]
xor esi, esi
mov dword [esp + 0x58], eax
mov eax, ecx
mov dword [esp + 0x54], edx
mov edx, esi
mov ecx, dword [esp + 0x54]
div ecx
mov dword [esp + 0x98], eax
mov eax, dword [0x49c564]
add eax, 0x10f7dfb2
mov ecx, dword [0x49ce60]
sub ecx, eax
mov dword [0x49ce60], ecx
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x98]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x90], eax
mov eax, dword [0x49fdbc]
imul eax, eax, 0x7c6638df
or eax, 0x830a7174
mov dword [0x4a0038], eax
mov eax, dword [esp + 0x90]
shl eax, 0x10
mov dword [esp + 0x90], eax
mov eax, dword [0x49a950]
and eax, 0x3c954ccf
mov dword [0x49a950], eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xd8]
movzx eax, word [ecx + eax*4 - 2]
mov ecx, dword [esp + 0x90]
or ecx, eax
mov dword [esp + 0x90], ecx
mov di, word [0x4a4816]
mov ax, di
inc eax
mov di, ax
mov word [0x4a4816], di
movsx eax, di
sub eax, 0x699e49a4
and eax, 0x5ecd015f
mov ecx, dword [esp + 0x58]
cmp ecx, eax
je 0x410f92
mov eax, 0x9fdfee97
mov ecx, dword [0x49ff74]
shl ecx, 1
cmp eax, ecx
jle 0x410f8d
mov ax, word [0x4a52de]
mov cx, ax
add ecx, 0x2d7036d1
mov ax, cx
mov word [0x4a52de], ax
jmp 0x410f92
mov eax, 0x4bdc8ead
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x8c]
imul ecx, edx
mov dword [esp + 0x80], ecx
mov ecx, dword [0x499cd0]
mov edx, ecx
inc edx
mov dword [0x499cd0], edx
mov si, word [0x4a27d2]
mov dx, si
dec edx
mov si, dx
mov word [0x4a27d2], si
movsx edx, si
imul ecx, edx
cmp eax, ecx
je 0x411023
mov eax, 0x9ef337df
mov ecx, dword [0x4a09f0]
mov edx, ecx
inc edx
mov dword [0x4a09f0], edx
cmp eax, ecx
jne 0x41101e
mov eax, 0xfd67f7ee
mov cx, word [0x4a1f74]
movsx edx, cx
cmp eax, edx
jg 0x411019
jmp 0x411019
jmp 0x41101e
jmp 0x411023
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x80]
jae 0x411180
mov eax, 0xafb7dfff
mov ecx, dword [0x499204]
mov edx, ecx
dec edx
mov dword [0x499204], edx
sub ecx, 0x48b8d5be
add ecx, 0x72d65ba3
cmp eax, ecx
jle 0x4110a1
mov ax, word [0x4a2c90]
mov cx, ax
mov edx, ecx
inc edx
mov ax, dx
mov word [0x4a2c90], ax
mov edx, dword [0x49ce80]
mov esi, edx
inc esi
mov dword [0x49ce80], esi
lea ecx, [ecx + edx + 1]
mov ax, word [0x4a4b6c]
mov dx, ax
xor ecx, edx
xor ecx, 0x38fe
mov ax, cx
mov word [0x4a4b6c], ax
mov eax, 0xacbfd343
mov ecx, dword [esp + 0x98]
dec ecx
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x90]
add edx, ecx
mov dword [esp + 0x90], edx
mov si, word [0x4a2588]
movsx ecx, si
cmp eax, ecx
jge 0x4110f6
mov ax, word [0x4a4af2]
mov cx, ax
and ecx, 0x1a08
mov ax, cx
mov word [0x4a4af2], ax
jmp 0x4110fb
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x84]
mov byte [esp + 0x53], cl
jb 0x41112c
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x80]
setb cl
mov byte [esp + 0x53], cl
mov al, byte [esp + 0x53]
test al, 1
jne 0x41113d
jmp 0x411168
mov eax, dword [esp + 0x98]
add eax, 0xffffffff
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x84]
add eax, dword [esp + 0x90]
mov dword [esp + 0x90], eax
jmp 0x4110fb
mov ax, word [0x4a1f46]
mov cx, ax
add ecx, 0x42040872
mov ax, cx
mov word [0x4a1f46], ax
mov eax, 0x537147a7
mov ecx, dword [0x4a06ec]
add ecx, 0x199e4e6d
mov dword [0x4a06ec], ecx
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x90]
sub edx, ecx
mov dword [esp + 0x90], edx
mov ecx, dword [0x49a840]
mov edx, ecx
inc edx
mov dword [0x49a840], edx
mov edx, dword [0x49d2cc]
imul edx, ecx
mov dword [0x49d2cc], edx
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x88]
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 + 0x9c], eax
mov eax, dword [0x49d5e4]
add eax, 0x8ffdff7
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jge 0x41124f
mov eax, dword [0x49fa54]
mov ecx, eax
inc ecx
mov dword [0x49fa54], ecx
mov ecx, 0x36b7a6d0
sub ecx, eax
and ecx, 0x228f8621
mov eax, dword [0x49daf8]
add eax, 0xadfdf556
and eax, 0xfe3c1f5a
cmp ecx, eax
jl 0x41124a
mov eax, dword [0x49b470]
sar eax, 5
mov dword [0x49c27c], eax
jmp 0x41124f
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x9c]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x94], eax
mov si, word [0x4a515a]
movsx eax, si
add eax, 0x8c181aa4
sub eax, 0x9cd00655
cmp eax, 0xd00110a0
je 0x4112b3
mov eax, dword [0x49cb34]
cmp eax, 0xa4804b82
jl 0x4112ae
mov eax, dword [0x4a07b8]
add eax, 0x97edbb87
mov dword [0x4a07b8], eax
jmp 0x4112b3
mov eax, dword [esp + 0x94]
shl eax, 0x10
mov dword [esp + 0x94], eax
mov dword [0x49f394], 0xb124e6f7
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xd8]
movzx eax, word [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x94]
or ecx, eax
mov dword [esp + 0x94], ecx
mov eax, dword [0x499e0c]
or eax, 0x59909869
mov dword [0x499e0c], eax
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x8c]
imul eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [0x49f2f4]
imul eax, eax, 0xdb175d52
mov dword [0x49f2f4], eax
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x80]
jae 0x411409
mov eax, dword [0x49da94]
and eax, 0x8718e863
mov dword [0x49da94], eax
mov eax, dword [esp + 0x9c]
dec eax
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x94]
add ecx, eax
mov dword [esp + 0x94], ecx
mov eax, dword [0x49e120]
mov ecx, eax
dec ecx
mov dword [0x49e120], ecx
mov ecx, dword [0x49bbd4]
sub ecx, eax
mov dword [0x49bbd4], ecx
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x84]
mov byte [esp + 0x47], cl
jb 0x4113be
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x80]
setb cl
mov byte [esp + 0x47], cl
mov al, byte [esp + 0x47]
test al, 1
jne 0x4113cf
jmp 0x4113fa
mov eax, dword [esp + 0x9c]
add eax, 0xffffffff
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x84]
add eax, dword [esp + 0x94]
mov dword [esp + 0x94], eax
jmp 0x41138d
mov eax, dword [0x4996ac]
or eax, 0xa361c409
mov dword [0x4996ac], eax
mov eax, dword [0x49ec30]
add eax, 0xc115c5b5
mov ecx, dword [0x49a038]
and eax, ecx
mov ecx, dword [0x49e620]
imul ecx, eax
mov dword [0x49e620], ecx
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x94]
sub ecx, eax
mov dword [esp + 0x94], ecx
mov eax, dword [0x49b5fc]
shl eax, 8
mov ecx, 0x7ba9c630
sub ecx, eax
mov eax, dword [0x49ba10]
shl eax, 4
or eax, 0x281793e3
cmp ecx, eax
jge 0x411474
mov eax, dword [0x4a0044]
add eax, 0x41008280
mov dword [0x4a0044], eax
mov eax, dword [esp + 0x98]
shl eax, 0x10
mov ecx, dword [esp + 0x9c]
or eax, ecx
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xe0]
sub ecx, edx
mov edx, dword [esp + 0xc0]
mov dword [edx + ecx*4 - 4], eax
mov eax, dword [0x4a0658]
imul eax, eax, 0xbf51bf42
mov dword [0x4a0658], eax
mov eax, 0x9f339347
mov ecx, dword [0x49d748]
imul ecx, ecx, 0x44a2b7a2
imul ecx, ecx, 0x5e408ed
cmp eax, ecx
jl 0x4114f7
mov eax, dword [0x49e23c]
not eax
and eax, 0x108b9852
mov cx, word [0x4a5766]
movsx edx, cx
or eax, edx
mov edx, dword [0x499fbc]
or edx, eax
mov dword [0x499fbc], edx
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe0]
sub eax, ecx
mov ecx, dword [esp + 0xc0]
mov edx, dword [ecx + eax*4 - 4]
inc edx
mov dword [ecx + eax*4 - 4], edx
mov dword [0x49f0a4], 0x1454ebc5
lea eax, [esp + 0xac]
xor ecx, ecx
mov edx, dword [0x4a02d0]
and edx, 0x4210058e
mov dword [0x4a0350], edx
mov edx, dword [esp + 0xe8]
mov esi, dword [esp + 0xe0]
sub edx, esi
mov esi, dword [esp + 0xc0]
mov edi, dword [esi + edx*4 - 4]
dec edi
mov dword [esi + edx*4 - 4], edi
mov edx, dword [0x49f888]
and edx, 0xd6351312
mov dword [0x49f888], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x40], ecx
call fcn.0044b710
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x411597
jmp 0x411f39
mov eax, dword [0x49b8cc]
or eax, 0xdf3d01ff
mov dword [0x49b8cc], eax
cmp dword [esp + 0xe0], 1
jge 0x4115bf
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x4115d7
mov eax, dword [esp + 0xe0]
sub eax, 1
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xb4]
mov dword [ecx], eax
mov eax, dword [0x49d808]
mov ecx, eax
inc ecx
mov dword [0x49d808], ecx
mov ecx, dword [0x49d9e8]
add ecx, eax
mov dword [0x49d9e8], ecx
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xb4]
mov dword [ecx + 4], eax
mov eax, dword [0x499748]
mov ecx, eax
dec ecx
mov dword [0x499748], ecx
and eax, 0x96681bd1
cmp eax, 0x7b8dfbeb
jge 0x411651
mov ax, word [0x4a5120]
mov cx, ax
add ecx, 0xa5908824
mov ax, cx
mov word [0x4a5120], ax
lea eax, [esp + 0xac]
mov ecx, dword [esp + 0xe8]
sub ecx, dword [esp + 0xe0]
sub ecx, 1
mov edx, dword [esp + 0xc0]
mov ecx, dword [edx + ecx*4]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00446c90
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x411698
jmp 0x411f39
lea eax, [esp + 0xa0]
xor ecx, ecx
mov edx, dword [0x49fcf8]
and edx, 0xe2468837
mov dword [0x49fcf8], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x38], ecx
call fcn.0044b710
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x4116dc
jmp 0x411f39
mov eax, 0x660251d8
mov cx, word [0x4a406a]
mov dx, cx
dec edx
mov si, dx
mov word [0x4a406a], si
movsx edx, cx
cmp eax, edx
jge 0x411757
mov eax, 0x20200540
mov ecx, dword [0x4a0460]
mov dx, word [0x4a20e4]
movsx esi, dx
xor ecx, esi
or ecx, 0x4ddf8fe3
cmp eax, ecx
jge 0x411752
mov eax, 0x2c9180f1
mov ecx, dword [0x4a0d30]
shl ecx, 7
add ecx, 0x96ad671
or ecx, 0x76efc9d4
cmp eax, ecx
je 0x41174d
jmp 0x41174d
jmp 0x411752
jmp 0x411757
cmp dword [esp + 0xe8], 2
jge 0x411770
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x411788
mov eax, dword [esp + 0xe8]
sub eax, 2
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xa8]
mov dword [ecx], eax
mov eax, dword [0x4a05a0]
add eax, 0x6710c7e2
mov ecx, dword [0x4996c4]
and ecx, 0x413376e8
mov edx, dword [0x4a0024]
xor edx, 0xffffffff
xor ecx, edx
cmp eax, ecx
jg 0x4117eb
mov eax, dword [0x498b18]
mov ecx, eax
dec ecx
mov dword [0x498b18], ecx
cmp eax, 0x24533efe
jl 0x4117e6
mov eax, dword [0x4a1180]
xor eax, 0xde7682b4
mov dword [0x4a1180], eax
jmp 0x41183b
mov eax, dword [0x49f7fc]
xor eax, 0xffffffff
and eax, 0xb9e4ad44
xor eax, 0x987c393e
cmp eax, 0xdabea345
jne 0x411836
mov eax, 0xe7874bb
mov ecx, dword [0x49c754]
mov edx, dword [0x49f024]
xor edx, 0xffffffff
sub edx, 0x14c3a9d7
or ecx, edx
cmp eax, ecx
jl 0x411831
jmp 0x411831
jmp 0x411836
jmp 0x41183b
cmp dword [esp + 0xe8], 1
jge 0x411854
xor eax, eax
mov dword [esp + 0x30], eax
jmp 0x41186c
mov eax, dword [esp + 0xe8]
sub eax, 1
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xa8]
mov dword [ecx + 4], eax
mov eax, dword [0x49c7c8]
and eax, 0xc695010a
mov dword [0x49c7c8], eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xa8]
mov dword [ecx + 8], eax
mov eax, dword [0x49cd34]
not eax
mov ecx, dword [0x4a088c]
imul eax, ecx
imul eax, eax, 0x268351c0
mov dword [0x4a088c], eax
lea eax, [esp + 0xac]
lea ecx, [esp + 0xa0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00414fc0
cmp eax, 0
jg 0x411521
mov eax, dword [0x499194]
xor eax, 0xf232afef
mov ecx, dword [0x49b8d4]
dec ecx
mov dword [0x49b8d4], ecx
xor eax, ecx
cmp eax, 0xe7f292c2
je 0x411923
mov ax, word [0x4a19c4]
mov cx, ax
add ecx, 0x2532000b
mov ax, cx
mov word [0x4a19c4], ax
jmp 0x411932
mov eax, dword [0x49aa80]
and eax, 0x929317f1
mov dword [0x498a00], eax
lea eax, [esp + 0xac]
lea ecx, [esp + 0xc4]
mov edx, dword [esp + 0xe8]
sub edx, dword [esp + 0xe0]
sub edx, 1
mov esi, dword [esp + 0xc0]
mov edx, dword [esi + edx*4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00446c90
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x411980
jmp 0x411f39
lea eax, [esp + 0xac]
mov cx, word [0x4a33e0]
mov dx, cx
and edx, 0xfff4
mov cx, dx
mov word [0x4a33e0], cx
mov edx, dword [esp + 0xe8]
sub edx, dword [esp + 0xe0]
sub edx, 1
shl edx, 5
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00423780
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x4119d6
jmp 0x411f39
mov eax, 0x2e5ba9df
mov ecx, dword [0x49c908]
inc ecx
mov dword [0x49c908], ecx
or ecx, 0xe912e3da
cmp eax, ecx
jg 0x411a00
mov dword [0x49e55c], 0x8d9ed09f
lea eax, [esp + 0xd0]
lea ecx, [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00413d50
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x411a33
jmp 0x411f39
mov ax, word [0x4a1946]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x4a1946], dx
movsx ecx, ax
add ecx, 0x4407763d
cmp ecx, 0xd9ebfbbe
jg 0x411ab5
mov eax, 0x361470a2
mov ecx, dword [0x4a08dc]
mov edx, ecx
inc edx
mov dword [0x4a08dc], edx
imul ecx, ecx, 0x44952beb
and ecx, 0xff7310a4
cmp eax, ecx
je 0x411a98
mov eax, dword [0x4a0c48]
and eax, 0x384f29d5
mov dword [0x4a0c48], eax
jmp 0x411ab0
mov ax, word [0x4a4740]
mov cx, ax
add ecx, 0x30915862
mov ax, cx
mov word [0x4a4740], ax
jmp 0x411ab5
lea eax, [esp + 0xd0]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x2c], ecx
call fcn.00444df0
cmp eax, 0
jge 0x411cae
mov eax, dword [0x49e0d8]
not eax
or eax, 0xe28f0eba
mov cx, word [0x4a1f36]
movsx edx, cx
shl edx, 4
or edx, 0xfa3efffe
cmp eax, edx
jg 0x411b1f
mov ax, word [0x4a1bc6]
movsx ecx, ax
and ecx, 0x2f74d95b
mov edx, dword [0x49c7e0]
sub edx, ecx
mov dword [0x49c7e0], edx
lea eax, [esp + 0xac]
lea ecx, [esp + 0xc4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00427a30
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x411b4e
jmp 0x411f39
mov eax, 0x5ef67a85
mov ecx, dword [0x49f554]
dec ecx
mov dword [0x49f554], ecx
cmp eax, ecx
je 0x411b94
mov eax, dword [0x499d14]
xor eax, 0xffffffff
or eax, 0x3dae47f7
cmp eax, 0x6d356c79
jl 0x411b8f
mov eax, dword [0x49a3e8]
xor eax, 0xa33167bd
mov dword [0x49a3e8], eax
jmp 0x411b94
lea eax, [esp + 0xac]
mov ecx, dword [esp + 0xe8]
sub ecx, dword [esp + 0xe0]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00423780
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x411bd0
jmp 0x411f39
lea eax, [esp + 0xd0]
lea ecx, [esp + 0xac]
mov edx, dword [0x498ea0]
not edx
or edx, 0xfafd
mov si, word [0x4a3d6c]
mov di, si
add edi, edx
mov si, di
mov word [0x4a3d6c], si
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00446820
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x411c27
jmp 0x411f39
mov eax, 0x3f1be6ea
mov ecx, dword [0x49f7f4]
shl ecx, 2
add ecx, 0xd6eaac17
cmp eax, ecx
jg 0x411c60
mov ax, word [0x4a15f0]
mov cx, ax
add ecx, 0x2f73f851
mov ax, cx
mov word [0x4a15f0], ax
jmp 0x411c7f
mov eax, dword [0x49d248]
imul eax, eax, 0x85a00198
mov ecx, dword [0x49c40c]
dec ecx
mov dword [0x49c40c], ecx
sub eax, ecx
mov dword [0x49a9c8], eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe0]
sub eax, ecx
mov ecx, dword [esp + 0xc0]
mov edx, dword [ecx + eax*4 - 4]
dec edx
mov dword [ecx + eax*4 - 4], edx
mov eax, dword [0x49e110]
xor eax, 0xebba7cdd
mov dword [0x49e110], eax
mov eax, dword [0x49a220]
add eax, 0x140905
mov dword [0x49a220], eax
mov eax, dword [esp + 0xe8]
add eax, 0xffffffff
mov dword [esp + 0xe8], eax
jmp 0x410cf1
mov eax, dword [0x49daac]
xor eax, 0x9b68b31e
mov dword [0x49daac], eax
cmp dword [esp + 0xf0], 0
je 0x411d87
mov eax, 0x87f11986
mov ecx, dword [0x49e988]
mov edx, dword [0x49fa98]
imul edx, edx, 0x46115245
and ecx, edx
cmp eax, ecx
jne 0x411d20
mov eax, dword [0x499ce8]
xor eax, 0xfb7d1ae6
mov dword [0x499ce8], eax
mov eax, dword [esp + 0xf0]
mov ecx, esp
lea edx, [esp + 0xb8]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.00427a30
mov dword [0x49d4a8], 0xb3e4e401
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xfc]
mov edx, dword [edx]
imul ecx, edx
mov edx, dword [esp + 0xf0]
mov dword [edx], ecx
mov si, word [0x4a4334]
movsx ecx, si
sar ecx, 8
and ecx, 0xb2afaac8
mov edx, dword [0x49bb3c]
or ecx, edx
mov dword [0x49af64], ecx
mov dword [esp + 0x28], eax
mov eax, 0x6d346780
mov ecx, dword [0x49b078]
mov edx, dword [0x49a548]
mov esi, edx
dec esi
mov dword [0x49a548], esi
xor ecx, edx
xor ecx, 0x5f56241a
cmp eax, ecx
jg 0x411dcf
mov eax, dword [0x4a0b48]
imul eax, eax, 0x41e52fcd
mov ecx, dword [0x49accc]
and ecx, eax
mov dword [0x49accc], ecx
jmp 0x411df2
mov ax, word [0x4a37fa]
movsx ecx, ax
imul ecx, ecx, 0x479c699
and ecx, 0x1c4d6ad4
mov edx, dword [0x499860]
xor edx, ecx
mov dword [0x499860], edx
cmp dword [esp + 0xf4], 0
je 0x411f24
mov eax, 0x78ca82f6
mov cx, word [0x4a3f1c]
movsx edx, cx
add edx, 0x4bad5890
xor edx, 0xd46b8494
cmp eax, edx
jne 0x411e3e
mov eax, dword [0x4a0418]
mov cx, word [0x4a1794]
mov dx, cx
xor edx, eax
mov cx, dx
mov word [0x4a1794], cx
xor eax, eax
mov ecx, dword [esp + 0xdc]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0xd0]
mov dword [edx], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
call fcn.00442280
mov ecx, dword [0x49aa2c]
not ecx
add ecx, 0x30cb3270
mov edx, dword [0x49dedc]
xor edx, ecx
mov dword [0x49dedc], edx
mov ecx, dword [esp + 0xf4]
mov edx, esp
mov esi, dword [esp + 0x20]
mov dword [edx + 4], esi
mov dword [edx], ecx
mov dword [esp + 0x1c], eax
call fcn.00427a30
mov ecx, dword [0x49dea8]
mov edx, ecx
inc edx
mov dword [0x49dea8], edx
mov edx, dword [0x49afc4]
imul edx, ecx
mov dword [0x49afc4], edx
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xf4]
mov dword [edx], ecx
mov di, word [0x4a31d2]
movsx ecx, di
sar ecx, 1
mov edx, dword [0x4a0294]
or edx, ecx
mov dword [0x4a0294], edx
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x18], eax
call fcn.00444df0
cmp eax, 0
jne 0x411f14
mov eax, dword [esp + 0xf4]
mov dword [eax], 1
mov eax, dword [0x498934]
imul eax, eax, 0xf6be7ff1
mov dword [0x498934], eax
mov eax, dword [0x49c72c]
imul eax, eax, 0x6ecf3566
or eax, 0x3aca5b6a
mov dword [0x49ee68], eax
mov eax, esp
lea ecx, [esp + 0xa0]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xac]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xb8]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc4]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xd0]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.00427640
mov eax, dword [0x49ff10]
dec eax
mov dword [0x49ff10], eax
imul eax, eax, 0x19258825
or eax, 0xc43b8930
mov dword [0x4a01cc], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x100]
add esp, 0x104
pop esi
pop edi
ret