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

Disassembly:
push ebx
push edi
push esi
sub esp, 0x584
mov eax, dword [0x49da18]
not eax
mov ecx, dword [0x495b0c]
and ecx, eax
mov dword [0x495b0c], ecx
lea ecx, [esp + 0x544]
call fcn.0043a730
mov dx, word [0x4a67a2]
mov cx, dx
inc ecx
mov dx, cx
mov word [0x4a67a2], dx
movsx ecx, dx
mov dword [0x49d708], ecx
mov ecx, dword [0x498988]
add ecx, 0x9881620b
mov dword [0x498988], ecx
mov ecx, dword [0x4a11bc]
add ecx, 0x5e05c792
mov dword [0x4a11bc], ecx
mov ecx, dword [0x49a714]
mov esi, dword [0x49617c]
imul esi, ecx
mov dword [0x49617c], esi
mov dword [esp + 0x110], 0
mov dx, word [0x4a4b5c]
movsx ecx, dx
xor ecx, 0xe6df6fba
mov esi, dword [0x498a78]
add esi, ecx
mov dword [0x498a78], esi
mov dword [0x4a8a88], 0x94
mov ecx, dword [0x4a0674]
inc ecx
mov dword [0x4a0674], ecx
imul ecx, ecx, 0x9c202590
xor ecx, 0xe07de635
mov esi, dword [0x49e7d0]
dec esi
mov dword [0x49e7d0], esi
sub esi, 0x5c98c071
and esi, 0x779b6c8c
cmp ecx, esi
mov dword [esp + 0x10c], eax
jl 0x412274
mov eax, dword [0x497aa8]
xor eax, 0xfe7baef5
mov dword [0x497aa8], eax
mov eax, dword [0x493c20]
mov ecx, esp
mov dword [ecx], 0x4a8a88
call eax
sub esp, 4
mov ecx, dword [0x495858]
shl ecx, 9
or ecx, 0x27732c14
mov edx, dword [0x49bbfc]
xor edx, ecx
mov dword [0x49bbfc], edx
mov dword [esp + 0x108], eax
call fcn.0041b490
mov dword [0x4a9328], eax
mov eax, dword [0x499790]
shl eax, 1
cmp eax, 0xaaed4a53
jle 0x4122fb
mov eax, dword [0x49e9e4]
inc eax
mov dword [0x49e9e4], eax
mov cx, word [0x4a6220]
mov dx, cx
imul edx, edx, 0x25eb2c05
and eax, edx
mov cx, word [0x4a7236]
mov dx, cx
imul edx, eax
mov cx, dx
mov word [0x4a7236], cx
call fcn.00439eb0
mov dword [0x4a932c], eax
mov eax, dword [0x498094]
imul eax, eax, 0x6be631f2
mov dword [0x498094], eax
mov eax, dword [0x4a9328]
cmp eax, 0
je 0x412603
mov eax, 0x5e3e0913
mov cx, word [0x4a4018]
movsx edx, cx
mov cx, word [0x4a2a8c]
movsx esi, cx
or edx, esi
or edx, 0xbf0d3a87
cmp eax, edx
jl 0x412364
mov ax, word [0x4a28d6]
mov cx, ax
add ecx, 0x87e4d8f
mov ax, cx
mov word [0x4a28d6], ax
mov eax, esp
lea ecx, [esp + 0x121]
mov dword [eax], ecx
call fcn.0041af10
mov dword [esp + 0x11c], eax
mov dx, word [0x4a3214]
mov ax, dx
or eax, 0x4871
mov dx, ax
mov word [0x4a3214], dx
mov eax, dword [esp + 0x11c]
mov byte [esp + eax + 0x121], 0x5c
mov eax, dword [0x4942fc]
and eax, 0x675f1c84
mov dword [0x4942fc], eax
mov eax, dword [esp + 0x11c]
inc eax
mov dword [esp + 0x11c], eax
mov eax, dword [0x49b4dc]
or eax, 0xdb5fdd5f
mov ecx, dword [0x49dfe8]
inc ecx
mov dword [0x49dfe8], ecx
add ecx, 0x729a7372
cmp eax, ecx
jge 0x412454
mov ax, word [0x4a514a]
movsx ecx, ax
or ecx, 0x67465fc0
cmp ecx, 0xdbb3e8fd
jg 0x412410
mov dword [0x49b3a0], 0xbb4a63a2
jmp 0x41244f
mov ax, word [0x4a777c]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x4a777c], ax
movsx ecx, ax
xor ecx, 0xd8b6063
mov edx, dword [0x494edc]
imul edx, edx, 0x82e921ed
cmp ecx, edx
je 0x412445
jmp 0x41244a
jmp 0x41244a
jmp 0x41244f
jmp 0x412454
mov eax, 0x7e340662
mov ecx, dword [esp + 0x11c]
mov byte [esp + ecx + 0x121], 0
mov ecx, dword [0x49c74c]
xor ecx, 0x3c7f4fef
mov dword [0x49c74c], ecx
mov ecx, dword [0x4a9368]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0x121]
mov dword [edx], ecx
mov dword [esp + 0x104], eax
mov dword [esp + 0x100], ecx
call fcn.00456270
mov ecx, dword [0x49a67c]
and ecx, 0xb160bc58
mov dword [0x49a67c], ecx
mov ecx, dword [0x493c68]
mov edx, esp
mov esi, dword [esp + 0x100]
mov dword [edx], esi
mov dword [edx + 4], 0
mov dword [esp + 0xfc], eax
call ecx
sub esp, 8
mov ecx, dword [0x4a0568]
mov edx, ecx
dec edx
mov dword [0x4a0568], edx
mov edx, dword [0x49a3bc]
sar edx, 6
and ecx, edx
and ecx, 0x93d77d51
mov edx, dword [esp + 0x104]
cmp edx, ecx
mov dword [esp + 0xf8], eax
jne 0x41252e
mov eax, dword [0x4961e8]
mov ecx, eax
inc ecx
mov dword [0x4961e8], ecx
mov ecx, dword [0x4a0628]
xor ecx, eax
mov dword [0x4a0628], ecx
jmp 0x412546
mov ax, word [0x4a3d64]
mov cx, ax
add ecx, 0x28209835
mov ax, cx
mov word [0x4a3d64], ax
mov eax, esp
mov dword [eax + 4], 0x1f
mov dword [eax], 0x3b62
call fcn.00416c10
mov dword [esp + 0x580], eax
mov eax, dword [0x49e084]
add eax, 0xac9a2473
and eax, 0x68db42e5
mov ecx, dword [0x4948f4]
sub ecx, eax
mov dword [0x4948f4], ecx
mov eax, dword [esp + 0x580]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x121]
mov dword [ecx], eax
call fcn.00456270
mov dx, word [0x4a4caa]
mov cx, dx
and ecx, 0x9bb6
mov dx, cx
mov word [0x4a4caa], dx
mov ecx, dword [esp + 0x580]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], 0x1f
mov dword [esp + 0xf4], eax
call fcn.004097d0
mov eax, dword [0x49f374]
shl eax, 3
mov ecx, dword [0x49efa8]
shr ecx, 8
and eax, ecx
xor eax, 0xab98
mov dx, word [0x4a44cc]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x4a44cc], dx
jmp 0x41262a
mov eax, dword [0x49f040]
imul eax, eax, 0xfb1c5c0c
mov dword [0x49f040], eax
mov byte [esp + 0x121], 0
mov eax, dword [0x499f38]
add eax, 0x1de2f50a
mov dword [0x499f38], eax
mov eax, dword [0x49b10c]
mov cx, word [0x4a2aea]
mov dx, cx
and edx, eax
mov cx, dx
mov word [0x4a2aea], cx
mov eax, esp
mov dword [eax + 4], 0x1f
mov dword [eax], 0x417a
call fcn.00416c10
mov dword [esp + 0x57c], eax
mov eax, dword [0x49fb94]
not eax
mov cx, word [0x4a3332]
movsx edx, cx
shl edx, 3
sub eax, edx
mov edx, dword [0x499834]
imul edx, eax
mov dword [0x499834], edx
mov eax, dword [esp + 0x57c]
mov edx, esp
mov dword [edx], eax
lea ecx, [esp + 0x544]
call fcn.0040d210
sub esp, 4
mov si, word [0x4a440e]
movsx ecx, si
shl ecx, 2
xor ecx, 0x30000
or ecx, 0xe330cfc5
mov edx, dword [0x493ec0]
and edx, ecx
mov dword [0x493ec0], edx
mov ecx, dword [esp + 0x57c]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0xf0], eax
call fcn.004097d0
mov eax, dword [0x4a0cac]
dec eax
mov dword [0x4a0cac], eax
cmp eax, 0x6a46a7ad
jl 0x41270f
mov eax, dword [0x4945a8]
imul eax, eax, 0xf9572284
or eax, 0x2f2cbe5b
mov dword [0x4a0720], eax
lea eax, [esp + 0x544]
lea ecx, [esp + 0x121]
mov dword [esp + 0xec], ecx
mov ecx, eax
call fcn.0042f050
lea ecx, [esp + 0x544]
mov dword [esp + 0xe8], eax
call fcn.00420e80
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0xe4], ecx
call fcn.0044cf20
cmp eax, 0
je 0x4128c8
mov eax, 0x81000100
mov ecx, dword [0x49a968]
xor ecx, 0xffffffff
cmp eax, ecx
jg 0x412799
mov dword [0x499924], 0x1778aea3
mov eax, 0x9ed586ba
mov dword [esp + 0x110], 1
mov cx, word [0x4a6f7c]
mov dx, cx
xor edx, 0xc9b9
mov cx, dx
mov word [0x4a6f7c], cx
mov edx, dword [0x493bf4]
mov esi, esp
lea edi, [esp + 0x121]
mov dword [esi], edi
mov dword [esp + 0xe0], eax
call edx
sub esp, 4
mov cx, word [0x4a22fc]
mov dx, cx
inc edx
mov bx, dx
mov word [0x4a22fc], bx
movsx edx, cx
mov esi, dword [esp + 0xe0]
cmp esi, edx
mov dword [esp + 0xdc], eax
je 0x41281e
mov eax, dword [0x498638]
imul eax, eax, 0x1a775cf
mov dword [0x498638], eax
mov eax, 0xc556cb2d
mov ecx, dword [esp + 0x11c]
mov byte [esp + ecx + 0x121], 0
mov dx, word [0x4a8784]
movsx ecx, dx
mov dx, word [0x4a5f44]
movsx esi, dx
not esi
sub ecx, esi
mov esi, dword [0x494740]
and esi, ecx
mov dword [0x494740], esi
mov ecx, dword [0x493c6c]
mov esi, esp
lea edi, [esp + 0x121]
mov dword [esi], edi
mov dword [esp + 0xd8], eax
call ecx
sub esp, 4
mov dx, word [0x4a6bca]
mov cx, dx
inc ecx
mov bx, cx
mov word [0x4a6bca], bx
movsx ecx, dx
imul ecx, ecx, 0xd2cdb6ce
mov esi, dword [0x499f00]
xor esi, 0xffffffff
xor ecx, esi
mov esi, dword [esp + 0xd8]
cmp esi, ecx
mov dword [esp + 0xd4], eax
jge 0x4128c3
mov eax, dword [0x49bd80]
and eax, 0x70fe6c82
mov dword [0x49bd80], eax
jmp 0x4128c8
mov eax, 0x36879fa0
mov ecx, dword [0x49858c]
or ecx, 0xf2a1be63
mov dword [0x49858c], ecx
mov ecx, esp
lea edx, [esp + 0x121]
mov dword [ecx], edx
mov dword [esp + 0xd0], eax
call fcn.0041af10
mov ecx, dword [0x49d040]
and ecx, 0x9e557a90
mov dword [0x49d040], ecx
mov byte [esp + 0x124], 0
mov ecx, dword [0x496e48]
dec ecx
mov dword [0x496e48], ecx
mov edx, dword [esp + 0xd0]
sub edx, ecx
cmp edx, 0xaf9ffade
mov dword [esp + 0xcc], eax
jg 0x412951
mov ax, word [0x4a7a20]
mov cx, ax
and ecx, 0xb4d0
mov ax, cx
mov word [0x4a7a20], ax
mov eax, dword [0x4a9368]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x121]
mov dword [ecx], eax
mov dword [esp + 0xc8], eax
call fcn.00456270
mov dx, word [0x4a4a08]
mov cx, dx
imul ecx, ecx, 0xa0d6330e
mov dx, cx
mov word [0x4a4a08], dx
mov ecx, dword [0x493c68]
mov esi, esp
mov edi, dword [esp + 0xc8]
mov dword [esi], edi
mov dword [esi + 4], 0
mov dword [esp + 0xc4], eax
call ecx
sub esp, 8
mov ecx, dword [0x4a0ac4]
not ecx
mov dx, word [0x4a6cd4]
mov si, dx
or esi, ecx
mov dx, si
mov word [0x4a6cd4], dx
mov ecx, esp
mov esi, dword [esp + 0xc8]
mov dword [ecx + 4], esi
mov dword [ecx], 0x4a8c68
mov dword [esp + 0xc0], eax
call fcn.00456260
mov ecx, dword [0x49cea4]
and ecx, 0xd555cae5
mov esi, dword [0x49db5c]
mov edi, esi
dec edi
mov dword [0x49db5c], edi
or ecx, esi
mov esi, dword [0x49add4]
or esi, ecx
mov dword [0x49add4], esi
cmp dword [esp + 0x110], 0
mov dword [esp + 0xbc], eax
jne 0x412a77
mov ax, word [0x4a60ca]
movsx ecx, ax
imul ecx, ecx, 0x553e1152
xor ecx, 0x38c2d978
mov edx, dword [0x4a02ec]
sub edx, ecx
mov dword [0x4a02ec], edx
mov dword [0x4a9324], 0
mov ecx, dword [0x49c3e8]
imul ecx, ecx, 0x607742d9
xor ecx, 0xdb83babd
mov edx, dword [0x495228]
or edx, ecx
mov dword [0x495228], edx
lea eax, [esp + 0x544]
lea ecx, [esp + 0x121]
mov dx, word [0x4a7550]
mov si, dx
and esi, 0x6bd1
mov dx, si
mov word [0x4a7550], dx
mov esi, esp
lea edi, [esp + 0x121]
mov dword [esi], edi
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb0], edi
call fcn.00417570
mov dword [esp + 0x11c], eax
mov eax, dword [0x49f9f8]
mov ecx, eax
inc ecx
mov dword [0x49f9f8], ecx
add eax, 0xd7fc0bca
or eax, 0xa59446b2
mov ecx, dword [0x496bb0]
xor ecx, eax
mov dword [0x496bb0], ecx
mov eax, dword [0x493c68]
mov ecx, esp
mov esi, dword [esp + 0xb0]
mov dword [ecx], esi
mov dword [ecx + 4], 0
call eax
sub esp, 8
mov ecx, dword [0x49c61c]
imul ecx, ecx, 0x63f8a1f9
mov dword [0x49c61c], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x3b62
mov dword [esp + 0xac], eax
call fcn.00416c10
mov dword [esp + 0x578], eax
mov eax, dword [0x496d04]
add eax, 0x860ca050
mov dword [0x496d04], eax
mov eax, dword [esp + 0x578]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0xb0]
mov dword [ecx], eax
call fcn.00456270
mov ecx, dword [0x494bc4]
or ecx, 0x162714c4
mov dword [0x494bc4], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x417a
mov dword [esp + 0xa8], eax
call fcn.00416c10
mov dword [esp + 0x574], eax
mov eax, dword [0x494068]
imul eax, eax, 0x5749cf39
mov dword [0x494068], eax
mov eax, dword [esp + 0x578]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.004097d0
mov eax, dword [0x49479c]
xor eax, 0xafdd73fd
mov dword [0x49479c], eax
mov eax, dword [esp + 0x574]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x544]
call fcn.0040d210
sub esp, 4
mov ecx, dword [0x494e34]
inc ecx
mov dword [0x494e34], ecx
mov esi, dword [0x49f0f4]
mov edi, esi
dec edi
mov dword [0x49f0f4], edi
sub ecx, esi
mov dx, word [0x4a5a74]
mov si, dx
sub esi, ecx
mov dx, si
mov word [0x4a5a74], dx
mov ecx, dword [esp + 0x574]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], 0x1f
mov dword [esp + 0xa4], eax
call fcn.004097d0
mov eax, dword [0x4946e0]
xor eax, 0x91a26d32
mov ecx, dword [0x49d954]
or eax, ecx
mov ecx, dword [0x49403c]
or ecx, eax
mov dword [0x49403c], ecx
mov eax, dword [esp + 0xb8]
mov ecx, eax
call fcn.0042f050
lea ecx, [esp + 0x544]
mov dword [esp + 0xa0], eax
call fcn.00420e80
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0x9c], ecx
call fcn.0044cf20
cmp eax, 0
jne 0x413ad8
mov eax, dword [0x49dd9c]
shl eax, 5
mov ecx, dword [0x49f29c]
not ecx
add ecx, 0xd89a26a
mov dx, word [0x4a1ef0]
movsx esi, dx
shl esi, 0xa
sub ecx, esi
cmp eax, ecx
jne 0x412cf8
mov eax, dword [0x49a008]
add eax, 0x30bef200
mov dword [0x49a008], eax
cmp dword [0x4a8a8c], 6
jb 0x412dca
mov eax, dword [0x495100]
mov ecx, dword [0x498c30]
imul ecx, eax
mov dword [0x498c30], ecx
mov eax, esp
mov dword [eax + 4], 0x12
mov dword [eax], 0x3a4d
call fcn.00416c10
mov dword [esp + 0x570], eax
mov eax, dword [0x4a0ce0]
mov ecx, dword [0x496088]
mov edx, ecx
inc edx
mov dword [0x496088], edx
cmp eax, ecx
je 0x412d59
mov word [0x4a7cc4], 0xe69c
mov eax, dword [esp + 0x570]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x121]
mov dword [ecx], eax
mov dword [ecx + 8], 0x4a8b1c
call fcn.00456fba
mov ecx, dword [0x4994a0]
or ecx, 0xd9ff6239
mov dword [0x4994a0], ecx
mov ecx, dword [esp + 0x570]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x12
mov dword [esp + 0x98], eax
call fcn.004097d0
mov eax, dword [0x49f018]
sar eax, 0xa
and eax, 0x85a69700
mov ecx, dword [0x496230]
add ecx, eax
mov dword [0x496230], ecx
jmp 0x412eea
mov eax, dword [0x4977e8]
inc eax
mov dword [0x4977e8], eax
and eax, 0x19600
mov ecx, dword [0x497194]
dec ecx
mov dword [0x497194], ecx
cmp eax, ecx
jle 0x412e1b
mov eax, dword [0x49a320]
mov ecx, eax
inc ecx
mov dword [0x49a320], ecx
mov dx, word [0x4a7954]
movsx ecx, dx
sar ecx, 8
imul eax, ecx
mov ecx, dword [0x49abfc]
xor ecx, eax
mov dword [0x49abfc], ecx
mov eax, esp
mov dword [eax + 4], 0x24
mov dword [eax], 0x1de7
call fcn.00416c10
mov dword [esp + 0x56c], eax
mov eax, dword [0x49c344]
inc eax
mov dword [0x49c344], eax
xor eax, 0x6acc4743
mov ecx, dword [0x49726c]
and ecx, 0xdec466f0
cmp eax, ecx
je 0x412e6d
mov eax, dword [0x49b8f0]
mov ecx, dword [0x49fdb8]
or ecx, eax
mov dword [0x49fdb8], ecx
mov eax, dword [esp + 0x56c]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x121]
mov dword [ecx], eax
mov dword [ecx + 8], 0x4a8b1c
call fcn.00456fba
mov ecx, dword [0x498a90]
mov edx, ecx
dec edx
mov dword [0x498a90], edx
imul ecx, ecx, 0x274f6602
mov edx, dword [0x495bdc]
shl edx, 0xa
and ecx, edx
mov edx, dword [0x49cccc]
imul edx, ecx
mov dword [0x49cccc], edx
mov ecx, dword [esp + 0x56c]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x24
mov dword [esp + 0x94], eax
call fcn.004097d0
mov eax, dword [0x497fc8]
add eax, 0x6202e56d
mov dword [0x497fc8], eax
mov eax, dword [0x49e468]
or eax, 0x26026aaa
cmp eax, 0x67caaa86
jne 0x412f17
mov ax, word [0x4a33aa]
mov cx, ax
xor ecx, 0x4161
mov ax, cx
mov word [0x4a33aa], ax
mov eax, 0x103fa750
mov byte [esp + 0x543], 0
mov cx, word [0x4a7c9c]
movsx edx, cx
mov esi, dword [0x49562c]
mov edi, esi
inc edi
mov dword [0x49562c], edi
sub edx, esi
add edx, 0x5799d738
cmp eax, edx
je 0x412f65
mov ax, word [0x4a46e4]
mov cx, ax
xor ecx, 0x8cb0
mov ax, cx
mov word [0x4a46e4], ax
mov eax, dword [0x4a9368]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x121]
mov dword [ecx], eax
mov dword [esp + 0x90], eax
call fcn.00456270
mov ecx, dword [0x4a1904]
mov edx, dword [0x49fa60]
sub edx, ecx
mov dword [0x49fa60], edx
mov ecx, dword [0x493c68]
mov edx, esp
mov esi, dword [esp + 0x90]
mov dword [edx], esi
mov dword [edx + 4], 0
mov dword [esp + 0x8c], eax
call ecx
sub esp, 8
mov ecx, dword [0x4945ac]
imul ecx, ecx, 0xdd43865f
mov edx, dword [0x49b018]
lea ecx, [ecx + edx - 0x1cd9e8fd]
mov dword [0x49b018], ecx
mov ecx, esp
mov edx, dword [esp + 0x90]
mov dword [ecx + 4], edx
mov dword [ecx], 0x4a8c68
mov dword [esp + 0x88], eax
call fcn.00456260
mov ecx, dword [0x49ee8c]
shr ecx, 9
and ecx, 0x1898
xor ecx, 0x65c5
mov di, word [0x4a2756]
mov dx, di
and edx, ecx
mov di, dx
mov word [0x4a2756], di
mov ecx, esp
mov edx, dword [esp + 0x90]
mov dword [ecx], edx
mov dword [esp + 0x84], eax
call fcn.00417570
mov dword [esp + 0x11c], eax
mov eax, dword [0x49f6f8]
mov ecx, eax
dec ecx
mov dword [0x49f6f8], ecx
imul eax, eax, 0xb007d3fb
or eax, 0x537da917
cmp eax, 0x1cb0f26c
jne 0x41307a
mov eax, dword [0x49c7c8]
add eax, 0xc491a097
mov dword [0x49c7c8], eax
jmp 0x413092
mov ax, word [0x4a6c34]
mov cx, ax
or ecx, 0x7362
mov ax, cx
mov word [0x4a6c34], ax
mov eax, 0x9c1506d2
mov ecx, dword [0x493c68]
mov edx, esp
lea esi, [esp + 0x121]
mov dword [edx], esi
mov dword [edx + 4], 0
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], esi
call ecx
sub esp, 8
mov ecx, dword [0x498e80]
mov edx, dword [0x498e68]
or edx, ecx
mov dword [0x498e68], edx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x3b62
mov dword [esp + 0x78], eax
call fcn.00416c10
mov dword [esp + 0x568], eax
mov eax, dword [0x4a0758]
and eax, 0xd4cfae6e
mov dword [0x4a0758], eax
mov eax, dword [esp + 0x568]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x7c]
mov dword [ecx], eax
call fcn.00456270
mov ecx, dword [0x49ecd4]
or ecx, 0x47ef6a9d
mov dword [0x49ecd4], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x417a
mov dword [esp + 0x74], eax
call fcn.00416c10
mov dword [esp + 0x564], eax
mov dword [0x49e84c], 0xfbcf7fe6
mov eax, dword [esp + 0x568]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.004097d0
mov di, word [0x4a5d0e]
mov ax, di
inc eax
mov bx, ax
mov word [0x4a5d0e], bx
movsx eax, di
mov ecx, dword [esp + 0x80]
cmp ecx, eax
jg 0x4131c6
mov ax, word [0x4a6d40]
mov cx, ax
mov edx, ecx
inc edx
mov ax, dx
mov word [0x4a6d40], ax
add ecx, 0xf0d69218
xor ecx, 0x2a06
mov ax, word [0x4a6acc]
mov dx, ax
and edx, ecx
mov ax, dx
mov word [0x4a6acc], ax
lea eax, [esp + 0x544]
lea ecx, [esp + 0x121]
mov edx, dword [esp + 0x564]
mov esi, esp
mov dword [esi], edx
lea edx, [esp + 0x544]
mov dword [esp + 0x70], ecx
mov ecx, edx
mov dword [esp + 0x6c], eax
call fcn.0040d210
sub esp, 4
mov ecx, dword [0x49d930]
add ecx, 0x98662123
mov dword [0x49d930], ecx
mov ecx, dword [esp + 0x564]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x68], eax
call fcn.004097d0
mov eax, dword [0x49e410]
mov ecx, dword [0x49b43c]
and eax, ecx
and eax, 0xda9601f8
mov dword [0x49b43c], eax
mov eax, dword [esp + 0x6c]
mov ecx, eax
call fcn.0042f050
lea ecx, [esp + 0x544]
mov dword [esp + 0x64], eax
call fcn.00420e80
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0x60], ecx
call fcn.0044cf20
cmp eax, 0
jne 0x413abb
mov eax, 0x39e8e0fb
mov ecx, dword [0x49ee74]
inc ecx
mov dword [0x49ee74], ecx
and ecx, 0x79a423ec
cmp eax, ecx
je 0x413322
mov eax, 0xa3cf72fa
mov ecx, dword [0x495990]
mov edx, dword [0x496b1c]
sar edx, 8
imul ecx, edx
or ecx, 0xfdd52c62
cmp eax, ecx
jge 0x413303
mov eax, 0x63823e02
mov cx, word [0x4a3068]
movsx edx, cx
sar edx, 9
imul edx, edx, 0xb88b3523
imul edx, edx, 0xdb7a0039
cmp eax, edx
jle 0x4132f9
jmp 0x4132fe
jmp 0x4132fe
jmp 0x41331d
mov eax, dword [0x49c394]
cmp eax, 0x77d85949
je 0x413318
jmp 0x413318
jmp 0x41331d
jmp 0x413322
mov eax, 0x2edf95a7
mov ecx, dword [0x493c10]
mov edx, esp
lea esi, [esp + 0x121]
mov dword [edx + 4], esi
mov dword [edx], 0x104
mov dword [esp + 0x5c], eax
call ecx
sub esp, 8
mov ecx, dword [0x49b6ec]
mov edx, dword [0x4966c8]
imul edx, edx, 0xa482cd3b
add ecx, edx
mov edx, dword [esp + 0x5c]
cmp edx, ecx
mov dword [esp + 0x58], eax
je 0x413381
mov eax, dword [0x4954f8]
imul eax, eax, 0x3c7b9df9
mov dword [0x4954f8], eax
jmp 0x413399
mov ax, word [0x4a68c0]
mov cx, ax
imul ecx, ecx, 0xfc522bce
mov ax, cx
mov word [0x4a68c0], ax
mov eax, 0x7199f45a
mov ecx, esp
lea edx, [esp + 0x121]
mov dword [ecx], edx
mov dword [esp + 0x54], eax
call fcn.004531a0
mov dword [esp + 0x11c], eax
mov eax, dword [0x4990d8]
mov ecx, dword [esp + 0x54]
cmp ecx, eax
jne 0x413410
mov eax, 0xdffebfff
mov ecx, dword [0x4a19e0]
xor ecx, 0xffffffff
imul ecx, ecx, 0x3b9fdf5b
cmp eax, ecx
jge 0x41340b
mov ax, word [0x4a7eca]
movsx ecx, ax
not ecx
add ecx, 0xc123f728
xor ecx, 0x89189f71
mov edx, dword [0x49d898]
sub edx, ecx
mov dword [0x49d898], edx
jmp 0x413410
mov eax, dword [esp + 0x11c]
add eax, 0xfffffffe
mov dword [esp + 0x11c], eax
mov eax, dword [0x497f08]
and eax, 0xfe7cedfb
mov dword [0x497f08], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x118], eax
cmp dword [esp + 0x118], 0
jle 0x413540
mov eax, dword [0x496cd8]
add eax, 0x17b5b627
mov ecx, dword [0x49b394]
imul ecx, eax
mov dword [0x49b394], ecx
mov eax, dword [esp + 0x118]
movsx eax, byte [esp + eax + 0x121]
cmp eax, 0x5c
jne 0x413517
mov eax, dword [0x49682c]
inc eax
mov dword [0x49682c], eax
and eax, 0x23ee
mov cx, word [0x4a79dc]
mov dx, cx
or edx, eax
mov cx, dx
mov word [0x4a79dc], cx
mov eax, dword [esp + 0x118]
inc eax
mov dword [esp + 0x118], eax
mov cx, word [0x4a4f08]
mov ax, cx
xor eax, 0xb7f0
mov cx, ax
mov word [0x4a4f08], cx
mov eax, dword [esp + 0x118]
mov byte [esp + eax + 0x121], 0
mov eax, dword [0x49c194]
not eax
imul eax, eax, 0xd4670d8d
add eax, 0x2331a068
mov edx, dword [0x49603c]
and edx, eax
mov dword [0x49603c], edx
mov eax, dword [esp + 0x118]
mov dword [esp + 0x11c], eax
mov dword [0x49ba00], 0x4c84b858
jmp 0x413540
mov eax, dword [0x498720]
mov ecx, dword [0x495aa0]
xor ecx, eax
mov dword [0x495aa0], ecx
mov eax, dword [esp + 0x118]
add eax, 0xffffffff
mov dword [esp + 0x118], eax
jmp 0x41343e
mov eax, dword [0x49e3c4]
xor eax, 0x1d220122
mov dword [0x49e3c4], eax
mov eax, esp
lea ecx, [esp + 0x121]
mov dword [eax + 4], ecx
mov dword [eax], 0x4a8c68
mov dword [esp + 0x50], ecx
call fcn.00456260
mov ecx, dword [0x49c9f4]
inc ecx
mov dword [0x49c9f4], ecx
mov edx, dword [0x4a17e8]
add edx, 0xda65c264
or ecx, edx
mov edx, dword [0x495e50]
or edx, ecx
mov dword [0x495e50], edx
mov ecx, esp
mov edx, dword [esp + 0x50]
mov dword [ecx], edx
mov dword [esp + 0x4c], eax
call fcn.00417570
mov dword [esp + 0x11c], eax
mov eax, dword [0x49b07c]
imul eax, eax, 0x1149e6a7
mov si, word [0x4a520c]
movsx ecx, si
shr ecx, 8
sub eax, ecx
mov si, ax
mov word [0x4a756c], si
mov eax, dword [0x493c68]
mov ecx, esp
mov edx, dword [esp + 0x50]
mov dword [ecx], edx
mov dword [ecx + 4], 0
call eax
sub esp, 8
mov si, word [0x4a1eea]
mov cx, si
mov si, word [0x4a3386]
mov dx, si
xor edx, ecx
mov si, dx
mov word [0x4a3386], si
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x3b62
mov dword [esp + 0x48], eax
call fcn.00416c10
mov dword [esp + 0x560], eax
mov eax, dword [0x49492c]
add eax, 0xc2b250fc
mov ecx, dword [0x4a0170]
dec ecx
mov dword [0x4a0170], ecx
imul ecx, ecx, 0xb7298006
add ecx, 0xf3d90eca
cmp eax, ecx
jg 0x41369c
mov eax, 0xa25e3483
mov ecx, dword [0x49591c]
sub eax, ecx
xor eax, 0xf08c08e2
cmp eax, 0xca8c63d2
jne 0x413697
mov eax, dword [0x4a061c]
mov ecx, eax
dec ecx
mov dword [0x4a061c], ecx
add eax, 0xe7c40886
cmp eax, 0x7112e2a6
jg 0x413692
jmp 0x413692
jmp 0x413697
jmp 0x41369c
mov eax, 0x2059080c
mov ecx, dword [esp + 0x560]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0x121]
mov dword [edx], ecx
mov dword [esp + 0x44], eax
call fcn.00456270
mov ecx, dword [0x495ef8]
or ecx, 0x1267d0a0
mov edx, dword [0x4978bc]
imul edx, ecx
mov dword [0x4978bc], edx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x417a
mov dword [esp + 0x40], eax
call fcn.00416c10
mov dword [esp + 0x55c], eax
mov si, word [0x4a762c]
mov ax, si
inc eax
mov si, ax
mov word [0x4a762c], si
movsx eax, si
xor eax, 0x649b4546
mov ecx, dword [0x49deb8]
sub ecx, eax
mov dword [0x49deb8], ecx
mov eax, dword [esp + 0x560]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.004097d0
mov eax, dword [0x495360]
mov ecx, dword [esp + 0x44]
cmp ecx, eax
jl 0x413766
mov eax, dword [0x499934]
inc eax
mov dword [0x499934], eax
or eax, 0xc860c37c
mov dword [0x49b744], eax
jmp 0x4137a0
mov eax, 0x7ffdfabf
mov ecx, dword [0x4a0f6c]
mov edx, dword [0x49a964]
and ecx, edx
cmp eax, ecx
jge 0x41379b
mov eax, dword [0x49bf80]
sar eax, 1
and eax, 0xf1ef3bc3
mov ecx, dword [0x4a13bc]
sub ecx, eax
mov dword [0x4a13bc], ecx
jmp 0x4137a0
lea eax, [esp + 0x544]
lea ecx, [esp + 0x121]
mov edx, dword [esp + 0x55c]
mov esi, esp
mov dword [esi], edx
lea edx, [esp + 0x544]
mov dword [esp + 0x3c], ecx
mov ecx, edx
mov dword [esp + 0x38], eax
call fcn.0040d210
sub esp, 4
mov di, word [0x4a422c]
movsx ecx, di
mov edx, dword [0x4a15ec]
and edx, ecx
mov dword [0x4a15ec], edx
mov ecx, dword [esp + 0x55c]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x34], eax
call fcn.004097d0
mov eax, dword [0x495ce8]
add eax, 0x4a080b8f
mov ecx, dword [0x4a19b0]
imul ecx, eax
mov dword [0x4a19b0], ecx
mov eax, dword [esp + 0x38]
mov ecx, eax
call fcn.0042f050
lea ecx, [esp + 0x544]
mov dword [esp + 0x30], eax
call fcn.00420e80
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0x2c], ecx
call fcn.0044cf20
cmp eax, 0
jne 0x413a82
mov eax, dword [0x4943ac]
cmp eax, 0xfa856b2a
jl 0x4138eb
mov eax, dword [0x49b394]
inc eax
mov dword [0x49b394], eax
cmp eax, 0x8ee0256a
jne 0x4138bb
mov eax, dword [0x49c310]
dec eax
mov dword [0x49c310], eax
add eax, 0xf73d9c01
and eax, 0x9cff7ebd
cmp eax, 0xfdc30c44
jge 0x4138b6
jmp 0x4138b6
jmp 0x4138e6
mov eax, dword [0x49dc84]
dec eax
mov dword [0x49dc84], eax
and eax, 0x9b2f
xor eax, 0x604e
mov cx, word [0x4a4dfa]
mov dx, cx
or edx, eax
mov cx, dx
mov word [0x4a4dfa], cx
jmp 0x4138eb
mov eax, dword [0x493c10]
mov ecx, esp
lea edx, [esp + 0x121]
mov dword [ecx + 4], edx
mov dword [ecx], 0x104
mov dword [esp + 0x28], edx
call eax
sub esp, 8
mov ecx, dword [0x49e500]
or ecx, 0x3b9cf1f8
mov dword [0x49e500], ecx
mov ecx, esp
mov edx, dword [esp + 0x28]
mov dword [ecx + 4], edx
mov dword [ecx], 0x4a8c68
mov dword [esp + 0x24], eax
call fcn.00456260
mov ecx, dword [0x495d84]
add ecx, 0xae368a7a
mov edx, dword [0x496860]
xor ecx, edx
xor ecx, 0x3574885e
mov dword [0x496860], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x3b62
mov dword [esp + 0x20], eax
call fcn.00416c10
mov dword [esp + 0x558], eax
mov eax, dword [0x49f4b4]
or eax, 0xa724df63
mov dword [0x49f4b4], eax
mov eax, dword [esp + 0x558]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x28]
mov dword [ecx], eax
call fcn.00456270
mov ecx, dword [0x4998fc]
imul ecx, ecx, 0xd9aa5963
xor ecx, 0x5be1a135
mov dword [0x49ceec], ecx
mov ecx, dword [esp + 0x558]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x1c], eax
call fcn.004097d0
mov si, word [0x4a7c82]
mov ax, si
dec eax
mov si, ax
mov word [0x4a7c82], si
movsx eax, si
imul eax, eax, 0xe362aa67
xor eax, 0xf82cd204
cmp eax, 0xe7ddbebf
jle 0x413a6e
mov eax, 0x7d00d4a1
mov cx, word [0x4a595e]
movsx edx, cx
xor edx, 0xffffffff
or edx, 0xcbf515f0
cmp eax, edx
jge 0x413a69
mov eax, dword [0x49ee54]
inc eax
mov dword [0x49ee54], eax
imul eax, eax, 0xfd70a969
or eax, 0xaf3f2438
mov ecx, dword [0x49ca94]
mov edx, ecx
inc edx
mov dword [0x49ca94], edx
add ecx, 0x6addd96c
mov edx, dword [0x49da88]
mov esi, edx
dec esi
mov dword [0x49da88], esi
add ecx, edx
cmp eax, ecx
jne 0x413a64
jmp 0x413a64
jmp 0x413a69
jmp 0x413a7d
mov eax, dword [0x49c920]
and eax, 0xdf1f809e
mov dword [0x49c920], eax
jmp 0x413a82
mov eax, 0xc5e5c28e
mov ecx, dword [0x49bdc4]
mov edx, ecx
inc edx
mov dword [0x49bdc4], edx
add ecx, 0x9ed5f0c3
mov edx, dword [0x4a01c8]
xor ecx, edx
cmp eax, ecx
jl 0x413ab6
mov dword [0x4981ac], 0x2de38d80
jmp 0x413abb
mov eax, dword [0x49e4c4]
not eax
mov cx, word [0x4a4b4c]
mov dx, cx
or edx, eax
mov cx, dx
mov word [0x4a4b4c], cx
mov eax, dword [0x4a0990]
imul eax, eax, 0xaaed8986
mov dword [0x4a0990], eax
mov eax, esp
lea ecx, [esp + 0x121]
mov dword [eax], ecx
call fcn.00417570
mov ecx, dword [0x4984dc]
mov edx, ecx
inc edx
mov dword [0x4984dc], edx
or ecx, 0xbfe7e93d
mov edx, dword [0x4a0a6c]
imul edx, edx, 0x654ab90d
cmp ecx, edx
mov dword [esp + 0x18], eax
je 0x413b98
mov eax, 0xe6f5b32e
mov ecx, dword [0x497b8c]
dec ecx
mov dword [0x497b8c], ecx
mov edx, dword [0x49c704]
imul ecx, edx
or ecx, 0xe3656332
cmp eax, ecx
jne 0x413b7b
mov eax, dword [0x495660]
mov ecx, eax
dec ecx
mov dword [0x495660], ecx
mov ecx, 0x3c1e49a7
sub ecx, eax
and ecx, 0xa8088e1b
mov eax, dword [0x49d02c]
imul eax, ecx
mov dword [0x49d02c], eax
jmp 0x413b93
mov eax, dword [0x49fa70]
and eax, 0x2a1b1e81
mov ecx, dword [0x49be5c]
or ecx, eax
mov dword [0x49be5c], ecx
jmp 0x413b98
mov eax, dword [0x493c1c]
mov ecx, esp
lea edx, [esp + 0x121]
mov dword [ecx], edx
mov dword [ecx + 4], 2
mov dword [esp + 0x14], edx
call eax
sub esp, 8
mov si, word [0x4a3a0e]
mov cx, si
add ecx, 0x22fa1a5a
mov si, cx
mov word [0x4a3a0e], si
mov ecx, esp
mov edx, dword [esp + 0x14]
mov dword [ecx], edx
mov dword [ecx + 4], 0x423
mov dword [esp + 0x10], eax
call fcn.004154b0
mov si, word [0x4a2516]
mov ax, si
dec eax
mov si, ax
mov word [0x4a2516], si
movsx eax, si
xor eax, 0xf7b49d4a
mov ecx, dword [0x498ab8]
and ecx, eax
mov dword [0x498ab8], ecx
lea ecx, [esp + 0x544]
call fcn.00407ab0
add esp, 0x584
pop esi
pop edi
pop ebx
ret