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

Disassembly:
push edi
push esi
sub esp, 0xf0
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x100]
mov esi, dword [esp + 0xfc]
mov dword [esp + 0xe8], eax
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe0], edx
mov dword [esp + 0xdc], esi
mov eax, dword [0x49c80c]
add eax, 0x1d56c395
mov dword [0x49c80c], eax
mov dword [0x4a2100], 0x3900014b
mov di, word [0x496222]
mov ax, di
dec eax
mov di, ax
mov word [0x496222], di
movsx eax, di
and eax, 0x476b1c22
cmp eax, 0x4e14e5b9
jne 0x446af0
mov eax, dword [0x4a3fac]
add eax, 0x75ba0950
mov dword [0x4a3fac], eax
xor eax, eax
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x68], eax
call fcn.004097f0
cmp eax, 0
jne 0x446b26
mov dword [esp + 0xec], 0xfffffff4
jmp 0x4483dd
mov eax, dword [0x49eb68]
add eax, 0x5087a340
mov dword [0x49eb68], eax
mov eax, esp
lea ecx, [esp + 0x8c]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0x98]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xa4]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xb0]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xbc]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.004345e0
mov eax, dword [0x4a35a8]
imul eax, eax, 0xc918572a
mov dword [0x4a35a8], eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00443750
cmp eax, 0
jge 0x446c61
mov eax, dword [0x4a36c8]
imul eax, eax, 0xf433ecf1
mov dword [0x4a36c8], eax
cmp dword [esp + 0xdc], 0
je 0x446bfc
xor eax, eax
mov ecx, dword [esp + 0xdc]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x64], eax
call fcn.00410050
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x446bf7
jmp 0x448376
jmp 0x446bfc
mov word [0x498b5e], 0x1f8f
cmp dword [esp + 0xe0], 0
je 0x446c47
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0043de40
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x446c42
jmp 0x448376
jmp 0x446c47
mov dword [0x49b368], 0x40b465a9
mov dword [esp + 0xec], 0
jmp 0x4483dd
mov eax, 0x50e78eec
mov ecx, dword [0x4a1fac]
mov edx, ecx
dec edx
mov dword [0x4a1fac], edx
cmp eax, ecx
je 0x446c8c
mov eax, dword [0x49d4b8]
add eax, 0xe7868132
mov dword [0x49d4b8], eax
lea eax, [esp + 0xbc]
mov ecx, dword [esp + 0xe4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043de40
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x446cbb
jmp 0x448376
lea eax, [esp + 0xb0]
mov ecx, dword [0x4a2048]
or ecx, 0xbff4e481
mov dword [0x4a2048], ecx
mov ecx, dword [esp + 0xe8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043de40
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x446cfc
jmp 0x448376
lea eax, [esp + 0xa4]
mov ecx, dword [0x49d6b8]
add ecx, 0xc964df19
mov dword [0x49d6b8], ecx
mov dword [esp + 0xb0], 1
mov dword [esp + 0xbc], 1
mov ecx, dword [0x49ccd4]
imul ecx, ecx, 0x3939f880
mov edx, dword [0x499860]
xor edx, ecx
mov dword [0x499860], edx
mov ecx, dword [esp + 0xe4]
mov ecx, dword [ecx + 4]
add ecx, 2
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0044bb80
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x446d73
jmp 0x448376
mov eax, 0x1a78096d
mov ecx, dword [0x49ca0c]
mov edx, ecx
inc edx
mov dword [0x49ca0c], edx
xor ecx, 0xb1b24461
or ecx, 0x61355a7e
cmp eax, ecx
jl 0x446daa
mov eax, dword [0x49badc]
and eax, 0xc8a257db
mov dword [0x49badc], eax
lea eax, [esp + 0xa4]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x60], ecx
call fcn.00410050
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x446ddc
jmp 0x448376
mov ax, word [0x493706]
movsx ecx, ax
shl ecx, 7
mov edx, dword [0x49ce2c]
mov esi, edx
dec esi
mov dword [0x49ce2c], esi
add edx, 0xa681d15f
mov esi, dword [0x4a3374]
and edx, esi
cmp ecx, edx
jge 0x446e1d
mov eax, dword [0x49b7e0]
imul eax, eax, 0xa29492
mov dword [0x49b7e0], eax
lea eax, [esp + 0x98]
mov ecx, 2
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x5c], ecx
call fcn.0044bb80
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x446e52
jmp 0x448376
mov eax, dword [0x49ece8]
mov ecx, eax
dec ecx
mov dword [0x49ece8], ecx
mov ecx, dword [0x49d944]
and eax, ecx
cmp eax, 0xec96ddad
jle 0x446ec2
mov eax, 0x8275cea
mov ecx, dword [0x4a4068]
imul ecx, ecx, 0x5d90c616
xor ecx, 0x2eeede75
cmp eax, ecx
jl 0x446ebd
mov ax, word [0x493318]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x493318], dx
movsx ecx, ax
imul ecx, ecx, 0xd1266900
mov esi, dword [0x49cff8]
and esi, ecx
mov dword [0x49cff8], esi
jmp 0x446ec2
lea eax, [esp + 0x8c]
mov ecx, 3
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x58], ecx
call fcn.0044bb80
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x446ef7
jmp 0x448376
mov eax, dword [0x4a2470]
add eax, 0x58a0739a
mov dword [0x4a2470], eax
mov eax, esp
lea ecx, [esp + 0xb0]
mov dword [eax], ecx
call fcn.00402c50
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x1b
mov edx, eax
add edx, ecx
and edx, 0xffffffe0
sub eax, edx
mov dword [esp + 0xc8], eax
mov eax, dword [0x498ea4]
sar eax, 2
mov ecx, dword [0x49da6c]
imul ecx, ecx, 0x35570c00
sub eax, ecx
mov si, word [0x496ba2]
mov cx, si
inc ecx
mov si, cx
mov word [0x496ba2], si
movsx ecx, si
mov edx, dword [0x4a3d40]
add ecx, edx
and ecx, 0x29083d62
cmp eax, ecx
jne 0x446f9f
mov ax, word [0x493f8a]
mov cx, ax
and ecx, 0x3848
shr ecx, 3
or ecx, 0xf8f6
mov ax, word [0x494640]
mov dx, ax
imul edx, ecx
mov ax, dx
mov word [0x494640], ax
cmp dword [esp + 0xc8], 0x1f
jge 0x447083
lea eax, [esp + 0xbc]
mov ecx, dword [0x4a14e0]
xor ecx, 0x805f05d1
mov edx, dword [0x4a2578]
or edx, ecx
mov dword [0x4a2578], edx
mov ecx, dword [esp + 0xc8]
mov edx, 0x1f
sub edx, ecx
mov dword [esp + 0xc8], edx
mov si, word [0x494796]
mov cx, si
add ecx, 0x6ab3a005
mov si, cx
mov word [0x494796], si
mov ecx, dword [esp + 0xc8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004350d0
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x447025
jmp 0x448376
lea eax, [esp + 0xb0]
mov ecx, dword [0x4a2280]
or ecx, 0x91f124be
mov dword [0x4a2280], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004350d0
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x447066
jmp 0x448376
mov ax, word [0x494e7a]
mov cx, ax
add ecx, 0x9377cfd5
mov ax, cx
mov word [0x494e7a], ax
jmp 0x44708e
mov dword [esp + 0xc8], 0
mov eax, 0x83c5bbb6
mov ecx, dword [0x4a4120]
sar ecx, 4
imul ecx, ecx, 0x76f106ac
mov dword [0x4a41c4], ecx
mov ecx, dword [esp + 0xc0]
dec ecx
mov dword [esp + 0xd0], ecx
mov ecx, dword [0x49e208]
dec ecx
mov dword [0x49e208], ecx
cmp eax, ecx
jg 0x44712c
mov eax, dword [0x4a05c8]
xor eax, 0xe81abb33
mov ecx, dword [0x49cb98]
xor ecx, 0x994e8a3a
cmp eax, ecx
jl 0x44710e
mov eax, 0x2692ab53
mov cx, word [0x498142]
movsx edx, cx
sar edx, 7
cmp eax, edx
jge 0x447109
jmp 0x447109
jmp 0x447127
mov eax, dword [0x498cf4]
imul eax, eax, 0xe6918bc0
mov ecx, dword [0x49d908]
add ecx, eax
mov dword [0x49d908], ecx
jmp 0x44713b
mov eax, dword [0x49bea0]
add eax, 0x6efc8266
mov dword [0x49bea0], eax
mov eax, dword [esp + 0xb4]
dec eax
mov dword [esp + 0xcc], eax
mov eax, dword [0x4a08a8]
mov cx, word [0x497926]
mov dx, cx
dec edx
mov cx, dx
mov word [0x497926], cx
movsx edx, cx
sub eax, edx
and eax, 0x8035b7b3
mov edx, dword [0x49af5c]
add edx, eax
mov dword [0x49af5c], edx
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xcc]
sub eax, edx
shl eax, 5
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0xb0]
mov dword [edx], eax
call fcn.004350d0
mov edx, dword [0x4a2794]
xor edx, 0x2e553e89
or edx, 0x7bcd6ed6
cmp edx, 0xaacbac23
mov dword [esp + 0x54], eax
jl 0x4471dc
mov ax, word [0x49692c]
mov cx, ax
or ecx, 0x2f83
mov ax, cx
mov word [0x49692c], ax
jmp 0x4471e1
lea eax, [esp + 0xbc]
lea ecx, [esp + 0xb0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0044a8c0
cmp eax, 0
jl 0x447310
mov eax, dword [0x49c44c]
imul eax, eax, 0x942947f6
mov dword [0x49c44c], eax
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xcc]
sub eax, ecx
mov ecx, dword [esp + 0xac]
mov edx, dword [ecx + eax*4]
inc edx
mov dword [ecx + eax*4], edx
mov si, word [0x49866a]
mov ax, si
dec eax
mov di, ax
mov word [0x49866a], di
movsx eax, si
or eax, 0xcd807598
cmp eax, 0x2204191
jne 0x447269
mov eax, dword [0x499e9c]
xor eax, 0x93066434
mov dword [0x499e9c], eax
mov eax, 0xea3f4d23
mov ecx, esp
lea edx, [esp + 0xb0]
mov dword [ecx + 8], edx
lea edx, [esp + 0xbc]
mov dword [ecx + 4], edx
mov dword [ecx], edx
mov dword [esp + 0x50], eax
call fcn.0040b430
mov ecx, dword [0x49e0a8]
mov edx, dword [esp + 0x50]
cmp edx, ecx
mov dword [esp + 0x4c], eax
jne 0x4472c2
mov ax, word [0x4937d0]
mov cx, ax
or ecx, 0x494f
mov ax, cx
mov word [0x4937d0], ax
jmp 0x44730b
mov eax, dword [0x4a2818]
add eax, 0xb132078a
or eax, 0xec7fb354
mov cx, word [0x4940c2]
mov dx, cx
inc edx
mov si, dx
mov word [0x4940c2], si
movsx edx, cx
imul edx, edx, 0xa8a51341
cmp eax, edx
jl 0x447306
mov eax, dword [0x4993c0]
and eax, 0x90080904
mov dword [0x4993c0], eax
jmp 0x44730b
jmp 0x4471e1
mov eax, 0x5d323961
mov ecx, dword [0x49ab40]
shl ecx, 4
add ecx, 0xcfd5335d
cmp eax, ecx
jne 0x44733b
mov eax, dword [0x49caec]
add eax, 0x8afcc3fd
mov dword [0x49caec], eax
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xcc]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xb0]
mov dword [ecx], eax
call fcn.00425250
mov dx, word [0x4963f6]
mov cx, dx
xor ecx, 0x2a12
mov dx, cx
mov word [0x4963f6], dx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xd4]
cmp eax, dword [esp + 0xcc]
jle 0x4481d3
mov dword [0x4a028c], 0xef6bbbe7
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xb8]
cmp eax, dword [edx + ecx*4]
jb 0x4473f7
mov eax, dword [esp + 0xd4]
sub eax, dword [esp + 0xcc]
sub eax, 1
mov ecx, dword [esp + 0xac]
mov dword [ecx + eax*4], 0xffffffff
jmp 0x447a8c
mov eax, 0xa48d95f3
mov ecx, dword [0x4a311c]
xor ecx, 0x2a5d8506
cmp eax, ecx
jl 0x447427
mov eax, dword [0x4a03a4]
shr eax, 8
or eax, 0xb173
mov cx, ax
mov word [0x495342], cx
mov eax, dword [0x49c178]
shl eax, 9
xor eax, 0x75fa43e3
mov ecx, dword [0x49e198]
sub ecx, eax
mov dword [0x49e198], ecx
mov eax, dword [0x49bbe4]
mov ecx, eax
dec ecx
mov dword [0x49bbe4], ecx
mov ecx, dword [0x4a3524]
shl ecx, 2
or eax, ecx
cmp eax, 0x3eee9d38
jle 0x447475
mov eax, dword [0x49af94]
or eax, 0x2a80142a
mov dword [0x49af94], eax
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x70], eax
mov dx, word [0x49452e]
movsx eax, dx
or eax, 0xb243284
mov dword [0x49e300], eax
movzx eax, word [esp + 0x70]
mov dword [esp + 0x78], eax
mov eax, dword [0x49e230]
shr eax, 9
or eax, 0xffefdaed
mov ecx, dword [0x4a41a4]
and ecx, eax
mov dword [0x4a41a4], ecx
movzx eax, word [esp + 0x72]
mov dword [esp + 0x74], eax
mov dx, word [0x4962ac]
mov ax, dx
inc eax
mov dx, ax
mov word [0x4962ac], dx
movsx eax, dx
imul eax, eax, 0x20606d5d
mov ecx, dword [0x498f80]
sub ecx, eax
mov dword [0x498f80], ecx
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x74]
xor edx, edx
div ecx
mov dword [esp + 0x84], eax
mov eax, dword [0x49fa1c]
and eax, 0xfda5b655
mov ecx, dword [0x49d6a8]
sar ecx, 5
or ecx, 0xb71b0101
cmp eax, ecx
jl 0x447570
mov eax, dword [0x4a1358]
cmp eax, 0xd3bb9927
jge 0x44755c
mov eax, dword [0x4a34dc]
add eax, 0x2420909
mov dword [0x4a34dc], eax
jmp 0x44756b
mov eax, dword [0x4a30e0]
and eax, 0x1149b57d
mov dword [0x4a30e0], eax
jmp 0x447570
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x84]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [0x49cc10]
not eax
add eax, 0x37e7bbc3
mov si, word [0x497cdc]
mov cx, si
and ecx, eax
mov si, cx
mov word [0x497cdc], si
mov eax, dword [esp + 0x7c]
shl eax, 0x10
mov dword [esp + 0x7c], eax
mov eax, dword [0x49ded0]
add eax, 0xcca1b406
mov dword [0x49ded0], eax
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xc4]
movzx eax, word [ecx + eax*4 - 2]
mov ecx, dword [esp + 0x7c]
or ecx, eax
mov dword [esp + 0x7c], ecx
mov si, word [0x49438e]
mov ax, si
dec eax
mov di, ax
mov word [0x49438e], di
movsx eax, si
imul eax, eax, 0x64b4b8bf
add eax, 0x978316e5
mov ecx, dword [0x49d154]
xor ecx, eax
mov dword [0x49d154], ecx
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x78]
imul eax, ecx
mov dword [esp + 0x6c], eax
mov eax, dword [0x4a0bd0]
or eax, 0x1c1e6671
mov ecx, dword [0x49f384]
xor ecx, eax
mov dword [0x49f384], ecx
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x6c]
jae 0x447765
mov eax, dword [0x49cf78]
mov ecx, dword [0x4a21a8]
inc ecx
mov dword [0x4a21a8], ecx
mov edx, dword [0x4a35ac]
dec edx
mov dword [0x4a35ac], edx
add ecx, edx
or eax, ecx
cmp eax, 0x48f54415
jge 0x4476b5
mov eax, 0x296c2482
mov ecx, dword [0x49d608]
mov edx, ecx
dec edx
mov dword [0x49d608], edx
cmp eax, ecx
jle 0x4476b0
mov eax, dword [0x4a0248]
add eax, 0xfa5fd63a
mov dword [0x4a0248], eax
jmp 0x4476b5
mov eax, dword [esp + 0x84]
dec eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x7c]
add ecx, eax
mov dword [esp + 0x7c], ecx
mov eax, dword [0x499084]
imul eax, eax, 0x26f5fbc2
or eax, 0xe4eca988
mov ecx, dword [0x4a2568]
sub ecx, eax
mov dword [0x4a2568], ecx
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x70]
mov byte [esp + 0x47], cl
jb 0x447715
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x6c]
setb cl
mov byte [esp + 0x47], cl
mov al, byte [esp + 0x47]
test al, 1
jne 0x447726
jmp 0x447748
mov eax, dword [esp + 0x84]
add eax, 0xffffffff
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x70]
add eax, dword [esp + 0x7c]
mov dword [esp + 0x7c], eax
jmp 0x4476f0
mov ax, word [0x4962a6]
movsx ecx, ax
add ecx, 0x653be6b2
mov edx, dword [0x49f678]
sub edx, ecx
mov dword [0x49f678], edx
mov eax, dword [0x4a1ce0]
add eax, 0x736b38f6
mov dword [0x4a1ce0], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x7c]
sub ecx, eax
mov dword [esp + 0x7c], ecx
mov eax, dword [0x49a3a8]
xor eax, 0x2881
or eax, 0x515e
mov dx, word [0x4973ba]
mov cx, dx
imul ecx, eax
mov dx, cx
mov word [0x4973ba], dx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x74]
xor edx, edx
div ecx
mov dword [esp + 0x88], eax
mov eax, dword [0x49f0c8]
xor eax, 0xfa4154d
mov dword [0x49f0c8], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x88]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [0x49baf8]
mov ecx, dword [0x49ee58]
xor ecx, 0xffffffff
and ecx, 0x17fa70f8
cmp eax, ecx
jne 0x447810
mov eax, dword [0x49e1f0]
add eax, 0xdcfe8fba
mov dword [0x49e1f0], eax
mov eax, dword [esp + 0x80]
shl eax, 0x10
mov dword [esp + 0x80], eax
mov eax, dword [0x498df4]
xor eax, 0x765c4a44
or eax, 0xf63717a1
cmp eax, 0x15ca7fcd
jle 0x4478b5
mov eax, dword [0x49ffac]
not eax
add eax, 0x596dc91f
or eax, 0xcb1ee355
mov cx, word [0x4953dc]
mov dx, cx
inc edx
mov si, dx
mov word [0x4953dc], si
movsx edx, cx
cmp eax, edx
jle 0x447893
mov eax, dword [0x4995fc]
shl eax, 8
sub eax, 0x8178a6f1
xor eax, 0x22b6c88
cmp eax, 0xd05a5674
jle 0x44788e
jmp 0x44788e
jmp 0x4478b0
mov ax, word [0x493d8a]
movsx ecx, ax
and ecx, 0x6d097518
mov edx, dword [0x49ab4c]
or edx, ecx
mov dword [0x49ab4c], edx
jmp 0x4478d9
mov ax, word [0x495294]
mov cx, ax
mov edx, ecx
dec edx
mov ax, dx
mov word [0x495294], ax
imul ecx, ecx, 0xa3350cee
mov ax, cx
mov word [0x4987c6], ax
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xc4]
movzx eax, word [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x80]
or ecx, eax
mov dword [esp + 0x80], ecx
mov eax, dword [0x4a3d50]
xor eax, 0xeecf7aa3
mov dword [0x4a3d50], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x78]
imul eax, ecx
mov dword [esp + 0x6c], eax
mov word [0x497740], 0xe1c
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x6c]
jae 0x4479f4
mov eax, dword [0x49cf54]
sar eax, 2
add eax, 0xddbdc9a4
and eax, 0xced520c3
mov dword [0x4a290c], eax
mov eax, dword [esp + 0x88]
dec eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x80]
add ecx, eax
mov dword [esp + 0x80], ecx
mov eax, dword [0x49e5ec]
or eax, 0x101b463e
mov dword [0x49e5ec], eax
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x70]
mov byte [esp + 0x46], cl
jb 0x4479ab
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x6c]
setb cl
mov byte [esp + 0x46], cl
mov al, byte [esp + 0x46]
test al, 1
jne 0x4479bc
jmp 0x4479e4
mov eax, dword [esp + 0x88]
add eax, 0xffffffff
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x70]
add eax, dword [esp + 0x80]
mov dword [esp + 0x80], eax
jmp 0x447980
mov eax, dword [0x49ede8]
imul eax, eax, 0x9526c1e8
mov dword [0x49ede8], eax
mov eax, 0xcdecc5b5
mov ecx, dword [0x499558]
and ecx, 0x14
shl ecx, 0xa
or ecx, 0xaa57
mov dx, word [0x495e34]
mov si, dx
xor esi, ecx
mov dx, si
mov word [0x495e34], dx
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x80]
sub esi, ecx
mov dword [esp + 0x80], esi
mov ecx, dword [0x499e1c]
sar ecx, 6
cmp eax, ecx
jle 0x447a55
mov eax, dword [0x4996e4]
and eax, 0xee79b207
mov dword [0x4996e4], eax
mov eax, dword [esp + 0x84]
shl eax, 0x10
mov ecx, dword [esp + 0x88]
or eax, ecx
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xcc]
sub ecx, edx
mov edx, dword [esp + 0xac]
mov dword [edx + ecx*4 - 4], eax
mov word [0x495180], 0x1236
mov eax, dword [0x498f28]
imul eax, eax, 0xf5cc626a
mov dword [0x498f28], eax
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xcc]
sub eax, ecx
mov ecx, dword [esp + 0xac]
mov edx, dword [ecx + eax*4 - 4]
inc edx
mov dword [ecx + eax*4 - 4], edx
mov eax, dword [0x49aa58]
inc eax
mov dword [0x49aa58], eax
xor eax, 0x495dc30e
mov ecx, dword [0x49a304]
sub ecx, eax
mov dword [0x49a304], ecx
lea eax, [esp + 0x98]
xor ecx, ecx
mov edx, dword [0x49f280]
add edx, 0x269e5d5f
xor edx, 0x51f1acb9
mov esi, dword [0x499bb0]
imul esi, edx
mov dword [0x499bb0], esi
mov edx, dword [esp + 0xd4]
mov esi, dword [esp + 0xcc]
sub edx, esi
mov esi, dword [esp + 0xac]
mov edi, dword [esi + edx*4 - 4]
dec edi
mov dword [esi + edx*4 - 4], edi
mov edx, dword [0x49a814]
mov esi, dword [0x49fda0]
imul esi, esi, 0x1eceff4e
and edx, esi
mov esi, dword [0x499a90]
imul esi, edx
mov dword [0x499a90], esi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x40], ecx
call fcn.00410050
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x447b70
jmp 0x448376
mov ax, word [0x495404]
mov cx, ax
xor ecx, 0x1408
mov ax, cx
mov word [0x495404], ax
cmp dword [esp + 0xcc], 1
jge 0x447ba1
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x447bb9
mov eax, dword [esp + 0xcc]
sub eax, 1
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x98]
mov edx, dword [esp + 0xa0]
mov dword [edx], eax
mov eax, dword [0x4a2af0]
add eax, 0x3471ef66
mov dword [0x4a2af0], eax
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0xb8]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0xa0]
mov dword [edx + 4], eax
mov eax, dword [0x49b9b8]
mov edx, eax
dec edx
mov dword [0x49b9b8], edx
mov si, word [0x496600]
mov dx, si
dec edx
mov di, dx
mov word [0x496600], di
movsx edx, si
add eax, edx
mov edx, dword [0x4992f4]
xor eax, edx
xor eax, 0xc986e0cb
mov dword [0x4992f4], eax
mov eax, dword [esp + 0xd4]
sub eax, dword [esp + 0xcc]
sub eax, 1
mov edx, dword [esp + 0xac]
mov eax, dword [edx + eax*4]
mov dword [esp], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00403ce0
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x447c71
jmp 0x448376
lea eax, [esp + 0x8c]
xor ecx, ecx
mov edx, dword [0x49e320]
mov esi, dword [0x49da80]
sub edx, esi
mov esi, dword [0x4a08f0]
and esi, edx
mov dword [0x4a08f0], esi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x38], ecx
call fcn.00410050
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x447cbf
jmp 0x448376
mov eax, dword [0x49cacc]
sar eax, 5
imul eax, eax, 0xa2cd07c5
or eax, 0x8e42a95f
mov ecx, dword [0x49dc98]
sub ecx, 0x31386d45
xor ecx, 0xc7a156ec
cmp eax, ecx
je 0x447d20
mov eax, 0x20e30601
mov ecx, dword [0x49e368]
mov edx, ecx
inc edx
mov dword [0x49e368], edx
cmp eax, ecx
jg 0x447d1b
mov eax, dword [0x4a254c]
mov ecx, dword [0x4a3c2c]
add ecx, eax
mov dword [0x4a3c2c], ecx
jmp 0x447d20
cmp dword [esp + 0xd4], 2
jge 0x447d39
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x447d51
mov eax, dword [esp + 0xd4]
sub eax, 2
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x94]
mov dword [ecx], eax
mov eax, dword [0x49f9b0]
inc eax
mov dword [0x49f9b0], eax
mov dx, word [0x494be2]
mov cx, dx
imul eax, ecx
imul eax, eax, 0x4e55fb35
mov dx, ax
mov word [0x494be2], dx
cmp dword [esp + 0xd4], 1
jge 0x447d9f
xor eax, eax
mov dword [esp + 0x30], eax
jmp 0x447db7
mov eax, dword [esp + 0xd4]
sub eax, 1
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x94]
mov dword [ecx + 4], eax
mov eax, dword [0x4a38e8]
mov ecx, eax
dec ecx
mov dword [0x4a38e8], ecx
mov ecx, 0xdcd21f8b
sub ecx, eax
mov eax, dword [0x49c1bc]
or ecx, eax
cmp ecx, 0xfb927e4e
jg 0x447e08
mov ax, word [0x494066]
movsx ecx, ax
mov edx, 0x1ce6896f
sub edx, ecx
mov dword [0x49e820], edx
jmp 0x447e21
mov eax, dword [0x4a079c]
or eax, 0x6e80be69
mov ecx, dword [0x49969c]
imul ecx, eax
mov dword [0x49969c], ecx
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x94]
mov dword [ecx + 8], eax
mov eax, dword [0x498ef8]
xor eax, 0x215922a1
mov dword [0x498ef8], eax
lea eax, [esp + 0x98]
lea ecx, [esp + 0x8c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0044a8c0
cmp eax, 0
jg 0x447ada
mov eax, dword [0x4a008c]
mov ecx, eax
inc ecx
mov dword [0x4a008c], ecx
xor eax, 0xb9a6af68
mov ecx, dword [0x49c020]
imul ecx, ecx, 0x751f815e
add ecx, 0x6a9203a9
cmp eax, ecx
jge 0x447eb6
mov eax, dword [0x49e6d0]
mov cx, word [0x494e4e]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x494e4e], cx
lea eax, [esp + 0x98]
lea ecx, [esp + 0xb0]
mov edx, dword [esp + 0xd4]
sub edx, dword [esp + 0xcc]
sub edx, 1
mov esi, dword [esp + 0xac]
mov edx, dword [esi + edx*4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00403ce0
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x447f04
jmp 0x448376
mov eax, 0x8cb2fb44
mov ecx, dword [0x49aea4]
shl ecx, 0xa
cmp eax, ecx
jne 0x447f29
mov eax, dword [0x49a0e4]
add eax, 0xe1dcbf4b
mov dword [0x49a0e4], eax
lea eax, [esp + 0x98]
mov ecx, dword [esp + 0xd4]
sub ecx, dword [esp + 0xcc]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004350d0
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x447f65
jmp 0x448376
lea eax, [esp + 0xbc]
lea ecx, [esp + 0x98]
mov edx, dword [0x4a348c]
mov esi, dword [0x4995a0]
imul edx, esi
imul edx, edx, 0xcb0fdeb3
mov dword [0x4995a0], edx
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0040b430
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x447fb3
jmp 0x448376
lea eax, [esp + 0xbc]
xor ecx, ecx
mov dx, word [0x496dfa]
movsx esi, dx
not esi
or esi, 0xc69efb1b
mov edi, dword [0x49ae08]
and edi, esi
mov dword [0x49ae08], edi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x2c], ecx
call fcn.004097f0
cmp eax, 0
jge 0x448174
mov ax, word [0x4978ae]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x4978ae], dx
movsx ecx, ax
imul ecx, ecx, 0xa3d78bc0
cmp ecx, 0xd7afff77
jne 0x448036
mov eax, dword [0x4a3154]
or eax, 0x4132050c
mov dword [0x4a3154], eax
jmp 0x44804a
mov eax, dword [0x4a0acc]
mov ecx, dword [0x4a0b84]
imul ecx, eax
mov dword [0x4a0b84], ecx
lea eax, [esp + 0x98]
lea ecx, [esp + 0xb0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043de40
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x448079
jmp 0x448376
lea eax, [esp + 0x98]
mov ecx, dword [0x49f63c]
imul ecx, ecx, 0xc1a7b1cc
mov dx, word [0x498754]
mov si, dx
xor esi, ecx
mov dx, si
mov word [0x498754], dx
mov ecx, dword [esp + 0xd4]
sub ecx, dword [esp + 0xcc]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004350d0
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x4480d7
jmp 0x448376
mov eax, dword [0x49dd48]
xor eax, 0xffffffff
xor eax, 0x74eebe49
cmp eax, 0xd9783e22
jl 0x448108
mov eax, dword [0x4a0114]
imul eax, eax, 0xd7bb11f5
mov ecx, dword [0x49e5e0]
xor ecx, eax
mov dword [0x49e5e0], ecx
lea eax, [esp + 0xbc]
lea ecx, [esp + 0x98]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004033b0
mov dword [esp + 0xd8], eax
cmp eax, 0
je 0x44813b
jmp 0x448376
mov dword [0x49e340], 0xbc9fd5c
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xcc]
sub eax, ecx
mov ecx, dword [esp + 0xac]
mov edx, dword [ecx + eax*4 - 4]
dec edx
mov dword [ecx + eax*4 - 4], edx
mov eax, dword [0x49d888]
add eax, 0x37b42000
mov dword [0x49d888], eax
mov eax, 0xe8acc7ce
mov ecx, dword [0x4a2704]
dec ecx
mov dword [0x4a2704], ecx
or ecx, 0xa847bd42
mov dx, word [0x4979d6]
movsx esi, dx
or ecx, esi
cmp eax, ecx
je 0x4481b8
mov ax, word [0x4976d2]
mov cx, ax
and ecx, 0xe2ca
mov ax, cx
mov word [0x4976d2], ax
jmp 0x4481bd
mov eax, dword [esp + 0xd4]
add eax, 0xffffffff
mov dword [esp + 0xd4], eax
jmp 0x44738d
mov eax, dword [0x49b998]
add eax, 0xe7e4b769
mov dword [0x49b998], eax
cmp dword [esp + 0xdc], 0
je 0x448272
mov eax, dword [0x499d04]
mov ecx, dword [0x4a104c]
dec ecx
mov dword [0x4a104c], ecx
sub eax, ecx
and eax, 0x53b028b2
mov dword [0x4a14bc], eax
mov eax, dword [esp + 0xdc]
mov ecx, esp
lea edx, [esp + 0xa4]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.0043de40
mov si, word [0x49419a]
movsx ecx, si
add ecx, 0x51c23f3f
mov edx, dword [0x49b90c]
sub edx, ecx
mov dword [0x49b90c], edx
mov ecx, dword [esp + 0xe4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xe8]
mov edx, dword [edx]
imul ecx, edx
mov edx, dword [esp + 0xdc]
mov dword [edx], ecx
mov dword [0x49f614], 0x57e0c850
mov dword [esp + 0x28], eax
mov eax, dword [0x49aa08]
or eax, 0xe28b9624
mov dword [0x49aa08], eax
cmp dword [esp + 0xe0], 0
je 0x448367
xor eax, eax
mov cx, word [0x4971b4]
mov dx, cx
or edx, 0x94ef
mov cx, dx
mov word [0x4971b4], cx
mov edx, dword [esp + 0xc8]
mov esi, esp
mov dword [esi + 4], edx
lea edx, [esp + 0xbc]
mov dword [esi], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
call fcn.00425250
mov edx, dword [0x49e008]
mov esi, dword [0x49ae04]
imul edx, esi
shl edx, 9
mov dword [0x49ae04], edx
mov edx, dword [esp + 0xe0]
mov esi, esp
mov edi, dword [esp + 0x20]
mov dword [esi + 4], edi
mov dword [esi], edx
mov dword [esp + 0x1c], eax
call fcn.0043de40
mov dword [0x49928c], 0xfc00a123
mov edx, dword [esp + 0xe4]
mov edx, dword [edx]
mov esi, dword [esp + 0xe0]
mov dword [esi], edx
mov dword [0x4a1874], 0xebefbbdf
mov edx, dword [esp + 0xe0]
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 0x18], eax
call fcn.004097f0
cmp eax, 0
jne 0x448357
mov eax, dword [esp + 0xe0]
mov dword [eax], 1
mov eax, dword [0x499010]
imul eax, eax, 0xba2d1dcf
mov dword [0x499010], eax
mov eax, dword [0x49f0f4]
or eax, 0x123b4c3d
mov dword [0x49f0f4], eax
mov eax, esp
lea ecx, [esp + 0x8c]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0x98]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xa4]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xb0]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xbc]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.0040f1d0
mov dx, word [0x495baa]
mov ax, dx
imul eax, eax, 0x6a22ba46
mov dx, ax
mov word [0x495baa], dx
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0xec]
add esp, 0xf0
pop esi
pop edi
ret