Function at 0x4014d0
Capabilities:
Load assembly via iassembly

Disassembly:
push ebx
push edi
push esi
sub esp, 0xbc
mov eax, dword [esp + 0xcc]
mov ecx, 0x50208d28
mov dword [esp + 0xb4], eax
mov word [0x485dc8], 0xf285
mov dword [0x49bb5c], 0xc032fc07
mov eax, dword [0x492070]
or eax, 0xaf6e1182
mov dword [0x492070], eax
mov eax, dword [0x49bdec]
imul eax, eax, 0xb57a34b2
mov edx, 0xb4b7ffdd
sub edx, eax
mov eax, dword [0x49cdfc]
sub eax, edx
mov dword [0x49cdfc], eax
mov word [0x488d8e], 0x6f16
mov eax, dword [0x4905ac]
add eax, 0x4b5115df
mov dword [0x4905ac], eax
mov eax, dword [0x493d34]
mov edx, dword [0x49ca44]
not edx
imul edx, edx, 0x4994a00c
xor eax, edx
mov si, word [0x486d1e]
mov dx, si
and edx, eax
mov si, dx
mov word [0x486d1e], si
mov eax, dword [0x49cee8]
or eax, 0xff9acedb
mov dword [0x49cee8], eax
mov si, word [0x4804e4]
mov ax, si
and eax, 0x3b4e
mov si, ax
mov word [0x4804e4], si
mov dword [esp + 0x88], 0
mov eax, dword [0x493f14]
add eax, 0x3f93f7ef
mov dword [0x493f14], eax
mov dword [esp + 0x94], 0
mov eax, dword [0x49bcd8]
imul eax, eax, 0xa094700
mov dword [0x49bcd8], eax
mov dword [esp + 0x98], 0
mov eax, dword [0x4990e8]
mov edx, eax
inc edx
mov dword [0x4990e8], edx
mov edx, dword [0x48f3f0]
xor edx, eax
xor edx, 0xe927d733
mov eax, dword [0x49692c]
sub eax, edx
mov dword [0x49692c], eax
mov eax, esp
mov dword [eax + 4], 0xe
mov dword [eax], 0x10a4
mov dword [esp + 0x44], ecx
call fcn.00445b40
mov dword [esp + 0xb0], eax
mov eax, dword [0x493280]
or eax, 0xc66de04f
mov ecx, dword [esp + 0x44]
cmp ecx, eax
jge 0x40169b
mov eax, 0xbcd33644
mov ecx, dword [0x49cf18]
mov edx, ecx
dec edx
mov dword [0x49cf18], edx
mov edx, dword [0x494944]
not edx
imul edx, edx, 0x1f20988
add ecx, edx
mov si, word [0x4850ec]
movsx edx, si
imul edx, edx, 0xdadd5f6e
sub eax, edx
cmp ecx, eax
jge 0x401696
mov eax, dword [0x48f11c]
add eax, 0xde5f764d
and eax, 0xd74c2691
cmp eax, 0x645373ce
jge 0x401691
jmp 0x401691
jmp 0x401696
jmp 0x40169b
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov edx, esp
mov dword [edx + 4], eax
mov dword [edx], ecx
call fcn.00455480
mov ecx, dword [0x495c40]
xor ecx, 0xb5ffdf9f
mov dword [0x495c40], ecx
mov ecx, dword [esp + 0xb0]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0xe
mov dword [esp + 0x40], eax
call fcn.004235c0
mov dword [0x48bc90], 0xfeaf19f6
mov eax, dword [0x47fc2c]
call eax
mov dword [esp + 0x7c], eax
mov eax, dword [0x49a8dc]
and eax, 0x43026493
mov dword [0x49a8dc], eax
cmp dword [esp + 0x7c], 0
jne 0x40175b
mov eax, 0xa13a61bc
mov ecx, dword [0x49a7f0]
mov edx, ecx
dec edx
mov dword [0x49a7f0], edx
add ecx, 0x40cbb1ee
cmp eax, ecx
jne 0x40174b
mov ax, word [0x4832e8]
mov cx, ax
add ecx, 0x3bfc2bde
mov ax, cx
mov word [0x4832e8], ax
mov dword [esp + 0xb8], 0
jmp 0x40260c
mov eax, 0x4de88e57
mov cx, word [0x48491c]
mov dx, cx
and edx, 0x2ead
mov cx, dx
mov word [0x48491c], cx
mov edx, esp
mov dword [edx + 4], 0xd
mov dword [edx], 0x34aa
mov dword [esp + 0x3c], eax
call fcn.00445b40
mov dword [esp + 0xac], eax
mov eax, dword [0x49af98]
inc eax
mov dword [0x49af98], eax
mov edx, dword [esp + 0x3c]
cmp edx, eax
jg 0x4017bf
mov eax, dword [0x4943d4]
xor eax, 0x1200c52
mov dword [0x4943d4], eax
mov eax, dword [0x47fc6c]
mov ecx, dword [esp + 0xac]
mov edx, esp
mov dword [edx], ecx
call eax
sub esp, 4
mov dword [esp + 0x9c], eax
mov si, word [0x482728]
mov ax, si
or eax, 0xfdac
mov si, ax
mov word [0x482728], si
mov eax, dword [esp + 0xac]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0xd
call fcn.004235c0
mov eax, dword [0x492c9c]
add eax, 0x822f7004
mov dword [0x492c9c], eax
cmp dword [esp + 0x9c], 0
jne 0x401852
mov eax, dword [0x49ad5c]
not eax
or eax, 0x19cbde7c
mov ecx, dword [0x49992c]
xor ecx, eax
mov dword [0x49992c], ecx
mov dword [esp + 0xb8], 0
jmp 0x40260c
mov eax, dword [0x499478]
dec eax
mov dword [0x499478], eax
xor eax, 0x81
mov cx, word [0x4858a0]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x4858a0], cx
mov eax, esp
mov dword [eax + 4], 0x10
mov dword [eax], 0x1a58
call fcn.00445b40
mov dword [esp + 0xa8], eax
mov eax, dword [0x48ae08]
and eax, 0xec41237a
mov dword [0x48ae08], eax
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x9c]
mov esi, esp
mov dword [esi + 4], eax
mov dword [esi], edx
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [esp + 0x98], eax
mov eax, dword [0x49bfbc]
add eax, 0xa852ba6
mov dword [0x49bfbc], eax
mov eax, dword [esp + 0xa8]
mov edx, esp
mov dword [edx + 4], eax
mov dword [edx], 0x10
call fcn.004235c0
mov eax, dword [0x495fd0]
mov edx, dword [0x48bfd8]
and edx, eax
mov dword [0x48bfd8], edx
cmp dword [esp + 0x98], 0
jne 0x401963
mov eax, dword [0x492478]
or eax, 0x8052d483
mov ecx, dword [0x49b08c]
xor ecx, eax
mov dword [0x49b08c], ecx
mov eax, dword [0x47fc68]
mov ecx, dword [esp + 0x9c]
mov edx, esp
mov dword [edx], ecx
call eax
sub esp, 4
mov ecx, dword [0x498dec]
shr ecx, 2
mov si, cx
mov word [0x48804e], si
mov dword [esp + 0xb8], 0
mov dword [esp + 0x38], eax
jmp 0x40260c
mov eax, dword [0x49b074]
inc eax
mov dword [0x49b074], eax
mov cx, word [0x4817de]
mov dx, cx
or eax, edx
or eax, 0xf5ff
mov cx, ax
mov word [0x4817de], cx
mov dword [esp + 0x80], 0x288
mov eax, dword [0x48c054]
mov edx, eax
inc edx
mov dword [0x48c054], edx
add eax, 0x11f59085
mov edx, dword [0x492330]
mov esi, edx
inc esi
mov dword [0x492330], esi
and eax, edx
mov edx, dword [0x4989a0]
add edx, eax
mov dword [0x4989a0], edx
mov eax, dword [0x47fc30]
mov edx, dword [esp + 0x7c]
mov esi, esp
mov dword [esi], edx
mov dword [esi + 8], 0x288
mov dword [esi + 4], 0
call eax
sub esp, 0xc
mov dword [esp + 0x94], eax
mov eax, dword [0x49678c]
mov edx, eax
inc edx
mov dword [0x49678c], edx
mov edx, dword [0x499440]
add edx, eax
mov dword [0x499440], edx
cmp dword [esp + 0x94], 0
jne 0x401a9c
mov eax, 0xa51ec734
mov ecx, dword [0x48cb84]
imul ecx, ecx, 0x80432412
mov dword [0x48cb84], ecx
mov ecx, dword [0x47fc68]
mov edx, dword [esp + 0x9c]
mov esi, esp
mov dword [esi], edx
mov dword [esp + 0x34], eax
call ecx
sub esp, 4
mov di, word [0x4826b4]
mov cx, di
dec ecx
mov bx, cx
mov word [0x4826b4], bx
movsx ecx, di
add ecx, 0xeb77993e
mov di, word [0x4870b8]
movsx edx, di
add ecx, edx
mov edx, dword [esp + 0x34]
cmp edx, ecx
mov dword [esp + 0x30], eax
je 0x401a8c
mov dword [0x490b48], 0xbfe7fffe
mov dword [esp + 0xb8], 0
jmp 0x40260c
mov ax, word [0x4815a8]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x4815a8], dx
movsx ecx, ax
neg ecx
mov esi, dword [0x49b940]
lea ecx, [esi + ecx + 0x64dce1a6]
mov dword [0x49b940], ecx
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
mov edi, esp
lea ebx, [esp + 0x80]
mov dword [edi + 4], ebx
mov dword [edi], esi
call ecx
sub esp, 8
mov dword [esp + 0x8c], eax
mov eax, dword [0x497880]
or eax, 0x95a418df
mov dword [0x497880], eax
cmp dword [esp + 0x8c], 0x6f
jne 0x401c2a
mov eax, dword [0x48cb70]
mov ecx, 0x4b18144c
sub ecx, eax
or ecx, 0xd04d10e6
mov eax, dword [0x494dbc]
xor eax, ecx
mov dword [0x494dbc], eax
mov eax, dword [0x47fc34]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x7c]
mov esi, esp
mov dword [esi + 8], ecx
mov dword [esi], edx
mov dword [esi + 4], 0
call eax
sub esp, 0xc
mov ecx, dword [0x48e518]
add ecx, 0x6a23b8d7
mov dword [0x48e518], ecx
mov ecx, dword [0x47fc30]
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
mov edi, esp
mov dword [edi + 8], edx
mov dword [edi], esi
mov dword [edi + 4], 0
mov dword [esp + 0x2c], eax
call ecx
sub esp, 0xc
mov dword [esp + 0x94], eax
mov eax, dword [0x49be04]
or eax, 0x81de27a
mov dword [0x49be04], eax
cmp dword [esp + 0x94], 0
jne 0x401c1b
mov eax, dword [0x490eec]
add eax, 0x1bd1d28d
xor eax, 0x380d
mov cx, word [0x4869f2]
mov dx, cx
imul edx, eax
mov cx, dx
mov word [0x4869f2], cx
mov eax, dword [0x47fc68]
mov edx, dword [esp + 0x9c]
mov esi, esp
mov dword [esi], edx
call eax
sub esp, 4
mov cx, word [0x48630e]
movsx edx, cx
not edx
add edx, 0x61591f0
mov esi, dword [0x48c67c]
xor esi, edx
mov dword [0x48c67c], esi
mov dword [esp + 0xb8], 0
mov dword [esp + 0x28], eax
jmp 0x40260c
mov eax, dword [0x489e9c]
xor eax, 0x2d431bca
mov dword [0x489e9c], eax
mov eax, 0x5a1d6c98
mov ecx, dword [0x4978a8]
add ecx, ecx
xor ecx, 0xb3c9b2a3
mov edx, dword [0x48a0fc]
sub eax, edx
xor eax, 0x24652bc5
cmp ecx, eax
jle 0x401c99
mov eax, 0xcfc4b9d4
mov ecx, dword [0x497a90]
mov edx, ecx
inc edx
mov dword [0x497a90], edx
xor ecx, 0xb98fa95c
cmp eax, ecx
jne 0x401c94
mov eax, dword [0x49a40c]
shl eax, 4
add eax, 0x6e87d1bc
xor eax, 0x420b9c7
mov ecx, dword [0x489ef4]
sub ecx, eax
mov dword [0x489ef4], ecx
jmp 0x401c99
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
mov edx, esp
lea esi, [esp + 0x80]
mov dword [edx + 4], esi
mov dword [edx], ecx
call eax
sub esp, 8
mov dword [esp + 0x8c], eax
mov eax, dword [0x490fac]
add eax, eax
mov di, word [0x485a6e]
mov cx, di
xor ecx, eax
mov di, cx
mov word [0x485a6e], di
cmp dword [esp + 0x8c], 0
jne 0x4024cb
mov eax, 0xdf7bfbae
mov ecx, dword [0x49a6fc]
imul ecx, ecx, 0xbb8baefc
mov edx, dword [0x49c424]
xor edx, ecx
mov dword [0x49c424], edx
mov ecx, dword [0x48f3ac]
or ecx, 0xc1dc10ae
mov dword [0x48f3ac], ecx
mov ecx, esp
mov dword [ecx + 4], 8
mov dword [ecx], 0x3514
mov dword [esp + 0x24], eax
call fcn.00445b40
mov dword [esp + 0xa4], eax
mov si, word [0x4864b0]
mov ax, si
inc eax
mov si, ax
mov word [0x4864b0], si
or eax, 0xb037
mov si, word [0x47fee4]
mov cx, si
and ecx, eax
mov si, cx
mov word [0x47fee4], si
mov eax, dword [esp + 0xa4]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x68]
mov dword [ecx], eax
call fcn.00455480
mov ecx, dword [0x499674]
mov edx, 0xb3eaffd6
sub edx, ecx
and edx, 0x8a796466
mov dword [0x4913d0], edx
mov ecx, dword [esp + 0xa4]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 8
mov dword [esp + 0x20], eax
call fcn.004235c0
mov eax, dword [0x49737c]
dec eax
mov dword [0x49737c], eax
or eax, 0x82ec559a
mov ecx, dword [esp + 0x24]
cmp ecx, eax
je 0x401e0b
mov ax, word [0x48112e]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x48112e], dx
movsx ecx, ax
mov esi, dword [0x49bc28]
imul esi, ecx
shl esi, 6
xor esi, 0x38600e1a
mov ecx, dword [0x49989c]
imul ecx, esi
mov dword [0x49989c], ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 0x90], eax
mov cx, word [0x481fca]
mov ax, cx
xor eax, 0x7baa
mov cx, ax
mov word [0x481fca], cx
cmp dword [esp + 0x90], 0
je 0x40247c
mov eax, 0xde6012b9
mov ecx, dword [0x49c5c0]
mov edx, ecx
dec edx
mov dword [0x49c5c0], edx
and ecx, 0x3e12b1d8
cmp eax, ecx
jle 0x401e8a
mov eax, dword [0x48ba50]
shr eax, 4
add eax, 0x2df852d1
mov cx, word [0x488892]
mov dx, cx
and eax, edx
and eax, 0x248d
mov cx, ax
mov word [0x488892], cx
mov eax, dword [esp + 0x90]
add eax, 0x1d8
mov ecx, esp
lea edx, [esp + 0x68]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.00455b00
mov dword [esp + 0x84], eax
mov eax, dword [0x48c154]
add eax, 0x92cb1124
mov dword [0x48c154], eax
cmp dword [esp + 0x84], 0
je 0x402440
mov eax, dword [0x496d10]
xor eax, 0xffffffff
imul eax, eax, 0x36580a02
cmp eax, 0x1db138f
jne 0x401f11
mov eax, 0x4e342b9b
mov cx, word [0x487922]
movsx edx, cx
xor edx, 0xffffffff
cmp eax, edx
jg 0x401f0c
mov eax, dword [0x493e88]
and eax, 0xb4920226
mov dword [0x493e88], eax
jmp 0x401f11
mov eax, dword [esp + 0x90]
add eax, 0x1b0
mov ecx, esp
lea edx, [esp + 0x68]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.00455b00
mov dword [esp + 0x84], eax
mov eax, dword [0x4957b8]
add eax, 0x832a85e
mov dword [0x4957b8], eax
cmp dword [esp + 0x84], 0
je 0x402431
mov eax, dword [0x4975cc]
or eax, 0xe963fecf
mov dword [0x4975cc], eax
mov eax, dword [0x492568]
imul eax, eax, 0x39f57665
mov dword [0x492568], eax
mov cx, word [0x487a16]
mov ax, cx
and eax, 0x8211
mov cx, ax
mov word [0x487a16], cx
mov cx, word [0x4818da]
mov ax, cx
add eax, 0xb063cc18
mov cx, ax
mov word [0x4818da], cx
mov eax, dword [esp + 0x90]
cmp dword [eax + 0x190], 8
jbe 0x401fc4
mov word [0x48108e], 0x118
jmp 0x401e32
mov ax, word [0x4860de]
mov cx, ax
xor ecx, 0xee71
mov ax, cx
mov word [0x4860de], ax
mov ecx, esp
mov dword [ecx + 4], 0x11
mov dword [ecx], 0x2397
call fcn.00445b40
mov dword [esp + 0xa0], eax
mov eax, dword [0x491bd0]
xor eax, 0xb88e2466
mov dword [0x491bd0], eax
mov eax, dword [esp + 0xa0]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x4c]
mov dword [ecx], eax
call fcn.00455480
mov ecx, dword [0x4925ac]
not ecx
imul ecx, ecx, 0x53bacd33
mov edx, dword [0x4978ec]
sub edx, ecx
mov dword [0x4978ec], edx
mov ecx, dword [esp + 0xa0]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x11
mov dword [esp + 0x1c], eax
call fcn.004235c0
mov eax, dword [0x48ef4c]
inc eax
mov dword [0x48ef4c], eax
xor eax, 0x109323f4
mov ecx, dword [0x48b3ec]
add ecx, eax
mov dword [0x48b3ec], ecx
mov dword [esp + 0x64], 0
mov dword [0x48e9f0], 0xcf4ac486
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x90]
cmp eax, dword [ecx + 0x190]
je 0x4022eb
mov eax, 0x210c0d0
mov dword [0x48bf04], 0x27df7dff
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x60], ecx
mov ecx, dword [0x48ecb8]
mov edx, ecx
inc edx
mov dword [0x48ecb8], edx
or ecx, 0xecd9eb06
cmp eax, ecx
je 0x4020d8
mov word [0x482d96], 0x351a
mov eax, 0x40064308
mov ecx, dword [esp + 0x60]
add ecx, ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [0x49d4e8]
imul ecx, ecx, 0xd9bf563c
add ecx, 0x445ecb3d
mov edx, dword [0x4952ac]
sub edx, ecx
mov dword [0x4952ac], edx
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x90]
mov bl, byte [edx + ecx + 0x194]
mov byte [esp + 0x4b], bl
mov ecx, dword [0x49772c]
mov edx, dword [0x495144]
imul ecx, edx
shl ecx, 2
mov dword [0x495144], ecx
mov bl, byte [esp + 0x4b]
mov byte [esp + 0x4a], bl
mov ecx, dword [0x491e44]
shl ecx, 7
sub ecx, 0x8fcb9e9c
cmp eax, ecx
jne 0x402163
mov eax, dword [0x48cf5c]
and eax, 0x60a08ec7
mov dword [0x48cf5c], eax
mov eax, 0x14f6067e
movzx ecx, byte [esp + 0x4b]
shr ecx, 4
mov dl, cl
mov byte [esp + 0x4b], dl
mov ecx, dword [0x48efe0]
or ecx, 0xef8c4b4b
mov dword [0x48efe0], ecx
movzx ecx, byte [esp + 0x4b]
mov dl, byte [esp + ecx + 0x4c]
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0xb4]
mov byte [esi + ecx], dl
mov ecx, dword [0x49ad6c]
or ecx, 0x96b61ebb
mov dword [0x49ad6c], ecx
mov ecx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [0x492378]
and ecx, 0x80fa
mov di, word [0x4856b6]
mov si, di
sub esi, ecx
mov di, si
mov word [0x4856b6], di
movzx ecx, byte [esp + 0x4a]
and ecx, 0xf
mov dl, cl
mov byte [esp + 0x4a], dl
mov ecx, dword [0x496ea0]
xor ecx, 0xb58e307
mov dword [0x496ea0], ecx
movzx ecx, byte [esp + 0x4a]
mov dl, byte [esp + ecx + 0x4c]
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0xb4]
mov byte [esi + ecx], dl
mov di, word [0x482d5a]
mov cx, di
dec ecx
mov di, cx
mov word [0x482d5a], di
movsx ecx, di
xor ecx, 0x19c13e48
cmp eax, ecx
je 0x402280
mov eax, 0x53d8ba10
mov ecx, dword [0x49cdcc]
xor ecx, 0xffffffff
or ecx, 0x44f70fc1
cmp eax, ecx
jg 0x40227b
mov eax, dword [0x48b834]
mov ecx, eax
inc ecx
mov dword [0x48b834], ecx
add eax, 0xb0cceb28
or eax, 0xe7d19b26
mov ecx, dword [0x48b16c]
and ecx, eax
mov dword [0x48b16c], ecx
jmp 0x4022c4
mov eax, dword [0x48de74]
mov ecx, eax
dec ecx
mov dword [0x48de74], ecx
and eax, 0x996b5bef
and eax, 0x54b54031
cmp eax, 0x5dd8f039
jge 0x4022bf
mov eax, dword [0x48bd84]
mov ecx, eax
inc ecx
mov dword [0x48bd84], ecx
mov ecx, dword [0x4968fc]
and ecx, eax
mov dword [0x4968fc], ecx
jmp 0x4022c4
mov eax, dword [esp + 0x64]
inc eax
mov dword [esp + 0x64], eax
mov cx, word [0x4809d8]
mov ax, cx
add eax, 0x11437415
mov cx, ax
mov word [0x4809d8], cx
jmp 0x402084
mov eax, dword [0x48a5e0]
mov ecx, dword [0x48a858]
sar ecx, 0xa
and eax, ecx
cmp eax, 0x86400
jl 0x40230f
mov word [0x487370], 0xec22
mov eax, 0x1160d9
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx + 0x190]
mov edx, dword [esp + 0xb4]
mov byte [edx + ecx*2], 0
mov ecx, dword [0x49cc7c]
inc ecx
mov dword [0x49cc7c], ecx
mov si, word [0x48556c]
mov dx, si
imul edx, ecx
mov si, dx
mov word [0x48556c], si
mov ecx, esp
lea edx, [esp + 0x4c]
mov dword [ecx], edx
mov dword [ecx + 4], 0x14
mov dword [esp + 0x18], eax
call fcn.004233d0
mov eax, dword [0x494cec]
mov ecx, eax
inc ecx
mov dword [0x494cec], ecx
sub eax, 0xa1753287
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jge 0x4023c1
mov eax, 0xe5944b51
mov ecx, dword [0x4962cc]
dec ecx
mov dword [0x4962cc], ecx
sub ecx, 0xbf22f944
sub ecx, 0x9e8dd334
cmp eax, ecx
je 0x4023bc
mov eax, dword [0x490e08]
or eax, 0x75e0bb98
mov dword [0x490e08], eax
jmp 0x4023d1
mov eax, dword [0x49ce24]
imul eax, eax, 0x7e582d86
mov dword [0x49ce24], eax
mov dword [esp + 0x88], 1
mov ax, word [0x4886dc]
movsx ecx, ax
sar ecx, 1
add ecx, 0x1d4bebb8
cmp ecx, 0xdfed6719
jne 0x40242c
mov eax, dword [0x49b128]
add eax, 0xe225d9a3
mov ecx, dword [0x49c038]
and eax, ecx
cmp eax, 0xea4f8dd0
jle 0x402427
mov eax, dword [0x495f28]
imul eax, eax, 0xc9b75763
mov dword [0x495f28], eax
jmp 0x40242c
jmp 0x40247c
mov eax, dword [0x491c20]
add eax, 0x3acebee8
mov dword [0x491c20], eax
mov eax, dword [0x48a638]
or eax, 0xba7fffde
mov ecx, dword [0x48e964]
xor ecx, eax
mov dword [0x48e964], ecx
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov dword [esp + 0x90], eax
mov eax, dword [0x4930d8]
add eax, 0x5bd29373
mov dword [0x4930d8], eax
jmp 0x401e32
mov dword [0x49217c], 0xec678ade
mov eax, esp
lea ecx, [esp + 0x68]
mov dword [eax], ecx
mov dword [eax + 4], 0x14
call fcn.004233d0
mov dx, word [0x47fd8c]
mov ax, dx
dec eax
mov si, ax
mov word [0x47fd8c], si
movsx eax, dx
add eax, 0xdd5ded54
mov ecx, dword [0x49ac10]
imul ecx, eax
mov dword [0x49ac10], ecx
jmp 0x4024de
mov eax, dword [0x495614]
mov ecx, dword [0x48afc8]
xor ecx, eax
mov dword [0x48afc8], ecx
mov ax, word [0x4822be]
mov cx, ax
add ecx, 0x3eefa793
mov ax, cx
mov word [0x4822be], ax
cmp dword [esp + 0x94], 0
je 0x40255e
mov ax, word [0x48047e]
mov cx, ax
or ecx, 0x813d
mov ax, cx
mov word [0x48047e], ax
mov ecx, dword [0x47fc34]
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0x7c]
mov edi, esp
mov dword [edi + 8], edx
mov dword [edi], esi
mov dword [edi + 4], 0
call ecx
sub esp, 0xc
mov bx, word [0x4888fa]
mov cx, bx
and ecx, 0x2182
mov bx, cx
mov word [0x4888fa], bx
mov dword [esp + 0x14], eax
mov eax, 0x89ff6f77
mov ecx, dword [0x49b908]
add ecx, 0xcfee3566
mov dword [0x49b908], ecx
mov ecx, dword [0x47fc68]
mov edx, dword [esp + 0x9c]
mov esi, esp
mov dword [esi], edx
mov dword [esp + 0x10], eax
call ecx
sub esp, 4
mov ecx, dword [0x49c308]
imul ecx, ecx, 0x83a1784
mov edx, dword [esp + 0x10]
cmp edx, ecx
mov dword [esp + 0xc], eax
jne 0x4025c8
mov ax, word [0x48105a]
mov cx, ax
add ecx, 0xcc5565e5
mov ax, cx
mov word [0x48105a], ax
jmp 0x4025fe
mov ax, word [0x488288]
mov cx, ax
not ecx
mov edx, dword [0x497a74]
mov esi, edx
inc esi
mov dword [0x497a74], esi
imul edx, edx, 0xfb6a394f
and ecx, edx
mov ax, word [0x482d8c]
mov dx, ax
xor edx, ecx
mov ax, dx
mov word [0x482d8c], ax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add esp, 0xbc
pop esi
pop edi
pop ebx
ret