Function at 0x40318b
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x30
mov esi, esp
mov dword [esi + 4], 0xefcdf2fd
mov eax, dword [esi + 4]
cmp eax, 0xf8ccc30a
jle 0x4031fd
cmp eax, 0x28605ba6
jle 0x403239
cmp eax, 0x61c7f233
jg 0x4032d2
cmp eax, 0x4e7a164b
jg 0x4033ba
cmp eax, 0x28605ba7
je 0x403561
cmp eax, 0x4a0a2cf7
jne 0x4031a0
mov eax, dword [esi + 8]
add eax, 0x5b
shr eax, 2
add eax, 0xab
mov dword [esi + 8], eax
call fcn.0040376a
call fcn.0040376a
jmp 0x4033ae
cmp eax, 0xd8420284
jg 0x40328c
cmp eax, 0xa5cfc3ae
jle 0x403316
cmp eax, 0xbfc74543
jg 0x4033f0
cmp eax, 0xa5cfc3af
je 0x4036d1
cmp eax, 0xbed3c812
je 0x4034d8
jmp 0x4031a0
cmp eax, 0xb663a77
jle 0x403351
cmp eax, 0x178ed1f6
jg 0x403436
cmp eax, 0xb663a78
je 0x403598
cmp eax, 0x15035cc8
jne 0x4031a0
mov edi, dword [esi + 8]
shl edi, 7
add edi, 0xffff9618
mov dword [esi + 8], edi
call fcn.0040318b
mov eax, 0x178ed1f7
cmp edi, 0x15
jl 0x4035b7
jmp 0x40368a
cmp eax, 0xe97392d6
jle 0x40338d
cmp eax, 0xefcdf2fc
jg 0x403474
cmp eax, 0xe97392d7
je 0x4035c1
cmp eax, 0xec836d0a
jne 0x4031a0
mov eax, dword [esi + 8]
shl eax, 0xe
add eax, 0xffffff66
mov dword [esi + 8], eax
mov dword [esi + 4], 0x722db304
jmp 0x4031a0
cmp eax, 0x6d7610e6
jle 0x403506
cmp eax, 0x6d7610e7
je 0x4035eb
cmp eax, 0x722db304
jne 0x4031a0
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
cmp eax, 0x1194
sbb ecx, 0
mov eax, 0x982e66d2
jb 0x40368a
mov eax, 0xa5cfc3af
jmp 0x40368a
cmp eax, 0x9d4c25ec
jle 0x40353c
cmp eax, 0x9d4c25ed
je 0x403425
cmp eax, 0xa15f968b
jne 0x4031a0
imul eax, dword [esi + 8], 0x1074000
add eax, 0xff15ff85
mov dword [esi + 8], eax
push eax
call fcn.00403730
add esp, 4
jmp 0x4033ae
cmp eax, 0xf8ccc30b
je 0x403602
cmp eax, 0xff0fe79c
je 0x40363a
cmp eax, 0x9c7456f
jne 0x4031a0
mov eax, dword [esi + 0x1c]
cmp byte [eax], 0xcc
mov eax, 0x89b37696
je 0x40368a
mov eax, 0x4e7a164c
jmp 0x40368a
cmp eax, 0xd8420285
je 0x40365d
cmp eax, 0xdb9d56c0
je 0x403692
cmp eax, 0xde2d6170
jne 0x4031a0
mov dword [esi + 4], 0x9c7456f
jmp 0x4031a0
cmp eax, 0x4e7a164c
je 0x4036a4
cmp eax, 0x5d1a6648
jne 0x4031a0
mov eax, dword [esi + 8]
shl eax, 9
and eax, 0xfffe00
imul eax, eax, 0xb6
mov dword [esi + 8], eax
mov dword [esi + 4], 0x2484cf47
jmp 0x4031a0
cmp eax, 0xbfc74544
je 0x4034c9
cmp eax, 0xc2e8cd3f
jne 0x4031a0
mov eax, dword [esi + 0x1c]
movzx eax, word [eax]
cmp eax, 0xcd03
je 0x4034c9
movzx eax, ax
cmp eax, 0xf0b
jne 0x4034d8
imul eax, dword [esi + 0xc], 0x4a60
add eax, 0xffd8b835
jmp 0x403552
cmp eax, 0x178ed1f7
je 0x4036bf
cmp eax, 0x2484cf47
jne 0x4031a0
push 0x1388
call dword [0x46f1e4]
call fcn.00402df9
sub eax, dword [esi + 0x20]
sbb edx, dword [esi + 0x24]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
mov dword [esi + 4], 0x722db304
jmp 0x4031a0
cmp eax, 0xefcdf2fd
je 0x4036dd
cmp eax, 0xf05a1dcc
jne 0x4031a0
imul eax, dword [esi + 8], 0x63
add eax, 0x86
shr eax, 0xb
imul edi, eax, 0x192000
mov dword [esi + 8], edi
push edi
call fcn.00403730
add esp, 4
push edi
call fcn.00401d2c
add esp, 4
mov eax, 0xb663a78
cmp edi, 0x3b
jge 0x40368a
mov eax, 0x5d1a6648
jmp 0x40368a
popal
jmp 0x4034ca
mov eax, dword [esi + 0xc]
shr eax, 2
add eax, 0xffffff18
imul ecx, eax, 0x86
imul eax, eax
imul edx, eax, 0x7c81
dec edx
add ecx, 0xfffffee3
mov dword [esi + 0xc], ecx
mov ecx, 0x15035cc8
jmp 0x403586
cmp eax, 0x61c7f234
jne 0x4036f4
mov edi, dword [esi + 8]
mov eax, edi
shr eax, 8
mov dword [esi + 8], eax
call fcn.00402df9
mov eax, 0x4a0a2cf7
cmp edi, 0xb00
jae 0x40368a
mov eax, 0x722db304
jmp 0x40368a
cmp eax, 0x89b37696
jne 0x403701
mov eax, dword [esi + 0xc]
shr eax, 0xb
and eax, 0x1ffff
mov dword [esi + 0xc], eax
mov dword [esi + 4], 0xbfc74544
jmp 0x4031a0
mov ecx, dword [esi + 0xc]
lea eax, [ecx + 7]
imul eax, eax
imul edx, eax, 0x6d71
dec edx
lea ecx, [ecx*4 + 0x1c]
and ecx, 0xffffe000
mov dword [esi + 0xc], ecx
mov ecx, 0xdb9d56c0
cmp eax, edx
je 0x403632
mov ecx, 0x6415a1b8
jmp 0x403632
mov edi, dword [esi + 8]
shl edi, 6
or edi, 0x19
mov dword [esi + 8], edi
call fcn.00402df9
mov eax, 0x9c7456f
cmp edi, 0x29
jae 0x40368a
mov eax, 0x2484cf47
jmp 0x40368a
imul edi, dword [esi + 8], 0x9900
add edi, 0xff7111b1
mov dword [esi + 8], edi
call fcn.0040376a
push edi
call fcn.00401d2c
add esp, 4
mov dword [esi + 4], 0x722db304
jmp 0x4031a0
mov eax, dword [esi + 8]
add eax, eax
add eax, 0x6d
mov dword [esi + 8], eax
mov dword [esi + 4], 0xd8420285
jmp 0x4031a0
mov eax, dword [esi + 0xc]
add eax, 7
shr eax, 7
imul ecx, eax, 0x8d
imul eax, eax
imul edx, eax, 0x9b
dec edx
add ecx, 0xffffefe0
mov dword [esi + 0xc], ecx
mov ecx, 0x6d7610e7
cmp eax, edx
je 0x403632
mov ecx, 0xde2d6170
mov dword [esi + 4], ecx
jmp 0x4031a0
mov eax, dword [esi + 8]
mov ecx, 0x228
add eax, ecx
shr eax, 8
lea eax, [eax*8 - 0xbf]
mov dword [esi + 8], eax
mov dword [esi + 4], 0xa15f968b
jmp 0x4031a0
mov eax, dword [esi + 8]
mov ecx, 0x1fffff8a
add eax, ecx
shr eax, 0xc
imul edi, eax, 0x19eb8000
mov dword [esi + 8], edi
call fcn.0040318b
mov eax, 0xec836d0a
cmp edi, 0x96
jge 0x40368a
mov eax, 0xe97392d7
mov dword [esi + 4], eax
jmp 0x4031a0
mov eax, dword [ebp + 4]
mov dword [esi + 0x1c], eax
mov dword [esi + 4], 0xf8ccc30b
jmp 0x4031a0
imul eax, dword [esi + 0xc], 0xf400
add eax, 0xffffeb08
mov dword [esi + 0xc], eax
mov dword [esi + 4], 0xc2e8cd3f
jmp 0x4031a0
imul eax, dword [esi + 8], 0x5d92
add eax, 0xffffce4d
shr eax, 0x17
mov dword [esi + 8], eax
mov dword [esi + 4], 0xdb9d56c0
jmp 0x4031a0
call fcn.00402df9
mov dword [esi + 0x24], edx
mov dword [esi + 0x20], eax
mov dword [esi + 4], 0x2484cf47
jmp 0x4031a0
cmp eax, 0x6415a1b8
jne 0x4031a0
jmp 0x403722
cmp eax, 0x982e66d2
jne 0x4031a0
mov eax, dword [esi + 0x14]
push dword [esi + 0x10]
call fcn.00401d2c
add esp, 4
push 0
call dword [0x46f0a0]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret