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

Disassembly:
push 0xffffffffffffffff
push 0x45af93
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x90
push ebx
push ebp
mov ebp, dword [esp + 0xa8]
push esi
mov esi, ecx
push edi
xor ebx, ebx
xor edi, edi
mov eax, dword [esi + 0xc]
mov dword [esp + 0x18], edi
cmp eax, ebx
jne 0x415b99
cmp ebp, ebx
je case.default.0x4160ed
cmp dword [ebp], 6
jne 0x415b99
mov eax, dword [ebp + 0xc]
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
shl edx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
shl ecx, 8
lea eax, [ecx + edx]
cmp eax, 0x80000000
je 0x415b3f
cmp eax, 0x80000100
je 0x415b3f
cmp eax, 0x80000104
je 0x415b3f
cmp eax, 0x80000102
jne 0x415b99
mov eax, dword [esi + 0x2c]
push 0x834
push eax
call fcn.0041b680
mov ecx, dword [esi + 4]
add esp, 8
call fcn.0040bcc0
mov ecx, dword [esi + 4]
push 5
call fcn.0040bde0
mov eax, dword [esi + 0xa4]
mov dword [esi + 0x74], 0xffffffff
cmp eax, ebx
je 0x415b90
push ebx
call fcn.0040f5c0
add esp, 4
mov ecx, esi
push eax
call fcn.0041b710
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xa4], ebx
push 1
mov ecx, esi
call fcn.00417360
cmp ebp, ebx
je case.default.0x4160ed
cmp dword [esi + 0xc], ebx
je case.default.0x4160ed
cmp dword [ebp], 6
jne case.default.0x4160ed
mov eax, dword [ebp + 0xc]
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 2]
mov dl, byte [eax + 3]
shl ecx, 8
add ecx, edx
and ecx, 0xff00
cmp ecx, 0x100
jne 0x415c2e
cmp dword [ebp + 8], 8
jl 0x415c2e
mov ecx, dword [esi + 4]
call fcn.0040c1e0
mov edx, dword [ebp + 0xc]
xor ecx, ecx
mov edi, eax
xor eax, eax
mov cl, byte [edx + 4]
mov al, byte [edx + 5]
shl ecx, 8
add ecx, eax
xor eax, eax
mov al, byte [edx + 6]
shl ecx, 8
add ecx, eax
xor eax, eax
mov al, byte [edx + 7]
shl ecx, 8
add ecx, eax
cmp edi, 0xffffffff
je 0x415c17
cmp edi, ecx
je 0x415c17
xor edi, edi
jmp 0x415c1c
mov edi, 1
mov edx, dword [ebp + 8]
mov dword [esp + 0x18], edi
add edx, ecx
mov ecx, dword [esi + 4]
push edx
call fcn.0040c210
mov eax, dword [ebp + 0xc]
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
shl edx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
shl ecx, 8
add ecx, edx
cmp ecx, 0x80000105
ja 0x4160de
je 0x4160c7
cmp ecx, 0x80000102
ja 0x415fb7
je 0x415f61
cmp ecx, 0x80000000
je 0x415f1b
cmp ecx, 0x80000100
je 0x415d9b
cmp ecx, 0x80000101
jne case.default.0x4160ed
cmp dword [ebp + 8], 8
jne case.default.0x4160ed
cmp edi, ebx
je case.default.0x4160ed
cmp dword [esi + 0xd0], ebx
jne 0x415cee
push 0x1c
call fcn.0045347a
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0xa8], 6
je 0x415cdb
mov ecx, eax
call fcn.0041bd80
jmp 0x415cdd
xor eax, eax
mov dword [esp + 0xa8], 0xffffffff
mov dword [esi + 0xd0], eax
push 0x2c
call fcn.0045347a
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0xa8], 7
je 0x415d16
mov ecx, eax
call fcn.0040a6b0
mov ebx, eax
jmp 0x415d18
xor ebx, ebx
mov dword [ebx + 4], 5
mov edi, dword [esi + 0xd0]
mov dword [esp + 0xa8], 0xffffffff
mov eax, dword [edi + 0x10]
mov ebp, dword [edi + 8]
test eax, eax
jne 0x415d67
mov eax, dword [edi + 0x18]
push 0xc
lea ecx, [edi + 0x14]
push eax
push ecx
call fcn.0044ec81
mov ecx, dword [edi + 0x18]
lea edx, [ecx + ecx*2]
dec ecx
test ecx, ecx
lea eax, [eax + edx*4 - 8]
jl 0x415d67
inc ecx
mov edx, dword [edi + 0x10]
mov dword [eax], edx
mov dword [edi + 0x10], eax
sub eax, 0xc
dec ecx
jne 0x415d59
mov eax, dword [edi + 0x10]
mov ecx, dword [eax]
mov dword [edi + 0x10], ecx
mov dword [eax + 4], ebp
mov dword [eax], 0
mov ebp, dword [edi + 0xc]
inc ebp
mov dword [edi + 0xc], ebp
mov dword [eax + 8], 0
mov dword [eax + 8], ebx
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x415ed5
mov dword [ecx], eax
jmp 0x415ed8
mov eax, dword [ebp + 8]
cmp eax, 8
je 0x415dac
cmp eax, 0xc
jne case.default.0x4160ed
cmp edi, ebx
je case.default.0x4160ed
cmp dword [esi + 0xd0], ebx
jne 0x415df5
push 0x1c
call fcn.0045347a
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0xa8], 4
je 0x415de2
mov ecx, eax
call fcn.0041bd80
jmp 0x415de4
xor eax, eax
mov dword [esp + 0xa8], 0xffffffff
mov dword [esi + 0xd0], eax
push 0x2c
call fcn.0045347a
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
mov dword [esp + 0xa8], 5
je 0x415e1d
mov ecx, eax
call fcn.0040a6b0
mov ebx, eax
jmp 0x415e1f
xor ebx, ebx
mov dword [ebx + 4], 4
mov eax, dword [ebp + 8]
cmp eax, 0xc
mov dword [esp + 0xa8], 0xffffffff
jne 0x415e64
mov eax, dword [ebp + 0xc]
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 8]
mov dl, byte [eax + 9]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 0xa]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 0xb]
shl ecx, 8
add ecx, edx
mov dword [ebx + 8], ecx
jmp 0x415e6b
mov dword [ebx + 8], 0
mov edi, dword [esi + 0xd0]
mov eax, dword [edi + 0x10]
mov ebp, dword [edi + 8]
test eax, eax
jne 0x415ea8
mov eax, dword [edi + 0x18]
push 0xc
lea ecx, [edi + 0x14]
push eax
push ecx
call fcn.0044ec81
mov ecx, dword [edi + 0x18]
lea edx, [ecx + ecx*2]
dec ecx
test ecx, ecx
lea eax, [eax + edx*4 - 8]
jl 0x415ea8
inc ecx
mov edx, dword [edi + 0x10]
mov dword [eax], edx
mov dword [edi + 0x10], eax
sub eax, 0xc
dec ecx
jne 0x415e9a
mov eax, dword [edi + 0x10]
mov ecx, dword [eax]
mov dword [edi + 0x10], ecx
mov dword [eax + 4], ebp
mov dword [eax], 0
mov ebp, dword [edi + 0xc]
inc ebp
mov dword [edi + 0xc], ebp
mov dword [eax + 8], 0
mov dword [eax + 8], ebx
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x415ed5
mov dword [ecx], eax
jmp 0x415ed8
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov edx, dword [esi + 0xd0]
push edx
call fcn.0040f600
add esp, 4
mov ecx, esi
push eax
call fcn.0041b710
mov ecx, dword [esi + 0xd0]
test ecx, ecx
je 0x415f03
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov ebp, dword [esp + 0xb0]
mov dword [esi + 0xd0], 0
xor ebx, ebx
jmp case.default.0x4160ed
cmp dword [ebp + 8], 8
jne case.default.0x4160ed
mov ecx, dword [esi + 4]
call fcn.0040c100
mov eax, dword [ebp + 0xc]
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 4]
mov dl, byte [eax + 5]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 6]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 7]
shl ecx, 8
add ecx, edx
push ecx
mov ecx, dword [esi + 4]
call fcn.0040c180
jmp case.default.0x4160ed
mov ecx, dword [ebp + 8]
cmp ecx, 8
jl case.default.0x4160ed
cmp edi, ebx
je case.default.0x4160ed
add ecx, 0xfffffff8
add eax, 8
push ecx
push eax
lea ecx, [esp + 0x24]
call fcn.0044e217
mov ecx, dword [esi + 4]
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0xac], 3
call fcn.0040c760
lea ecx, [esp + 0x1c]
mov dword [esp + 0xa8], 0xffffffff
call fcn.00453112
jmp 0x41638e
cmp ecx, 0x80000103
je 0x4160b0
cmp ecx, 0x80000104
jne case.default.0x4160ed
mov ecx, dword [ebp + 8]
cmp ecx, 8
jl case.default.0x4160ed
cmp edi, ebx
je case.default.0x4160ed
add ecx, 0xfffffff8
add eax, 8
push ecx
push eax
call fcn.0040f110
add esp, 8
mov ecx, esi
push eax
call fcn.0041b710
mov ecx, dword [ebp + 8]
sub ecx, 8
cmp ecx, 4
jne 0x416061
mov eax, dword [ebp + 0xc]
xor edx, edx
xor ecx, ecx
mov dl, byte [eax + 8]
mov cl, byte [eax + 0xb]
mov edi, edx
xor edx, edx
mov dl, byte [eax + 9]
shl edi, 8
add edi, edx
xor edx, edx
mov dl, byte [eax + 0xa]
shl edi, 8
add edi, edx
shl edi, 8
lea eax, [edi + ecx]
mov edx, eax
and edx, 0xffff0000
cmp edx, 0xffff0000
jne 0x416061
and ecx, 0xf
sub ecx, ebx
je 0x416050
dec ecx
jne 0x416061
push 0xfff
jmp 0x416059
shr eax, 4
and eax, 0xfff
push eax
mov ecx, dword [esi + 4]
call fcn.0040cc00
mov ecx, dword [esi + 4]
call fcn.0040cbd0
sub eax, ebx
je 0x416096
dec eax
je 0x41607c
sub eax, 0xffe
je 0x416096
jmp 0x41638e
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
sub eax, 8
add ecx, 8
push eax
push ecx
mov ecx, esi
call fcn.004181a0
jmp 0x41638e
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
sub edx, 8
add eax, 8
push edx
push eax
mov ecx, esi
call fcn.00417420
jmp 0x41638e
cmp dword [ebp + 8], 8
jle case.default.0x4160ed
cmp edi, ebx
je case.default.0x4160ed
jmp 0x41638e
cmp dword [ebp + 8], 8
jne case.default.0x4160ed
cmp edi, ebx
je case.default.0x4160ed
jmp 0x41638e
add ecx, 0x7ffffd00
cmp ecx, 4
ja case.default.0x4160ed
jmp dword [ecx*4 + 0x417278]
mov ecx, dword [ebp + 8]
cmp ecx, 0xc
je 0x416105
cmp ecx, 0x20
jne case.default.0x4160ed
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 8]
mov dl, byte [eax + 9]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 0xa]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 0xb]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 5]
push ecx
xor ecx, ecx
mov cl, byte [eax + 4]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 6]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 7]
shl ecx, 8
add ecx, edx
push ecx
mov ecx, dword [esi + 4]
call fcn.0040c3e0
jmp 0x41638e
mov eax, dword [ebp + 8]
cmp eax, 8
jl case.default.0x4160ed
add eax, 0xfffffffc
and eax, 0x80000003
jns 0x416175
dec eax
or eax, 0xfffffffc
inc eax
jne case.default.0x4160ed
lea ecx, [esp + 0x20]
call fcn.0044ea52
mov eax, dword [ebp + 8]
xor edi, edi
sub eax, 4
mov dword [esp + 0xa8], ebx
cdq
and edx, 3
add eax, edx
sar eax, 2
test eax, eax
jle 0x4161ed
mov ecx, dword [ebp + 0xc]
xor eax, eax
xor edx, edx
mov al, byte [ecx + edi*4 + 4]
mov dl, byte [ecx + edi*4 + 5]
shl eax, 8
add eax, edx
xor edx, edx
mov dl, byte [ecx + edi*4 + 6]
shl eax, 8
add eax, edx
xor edx, edx
mov dl, byte [ecx + edi*4 + 7]
lea ecx, [esp + 0x20]
shl eax, 8
add eax, edx
push eax
mov eax, dword [esp + 0x2c]
push eax
call fcn.0044ec05
mov eax, dword [ebp + 8]
inc edi
sub eax, 4
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp edi, eax
jl 0x4161a0
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [esi + 4]
call fcn.0040c610
lea ecx, [esp + 0x20]
mov dword [esp + 0xa8], 0xffffffff
call fcn.0044ea85
jmp 0x41638e
mov edx, dword [ebp + 8]
add eax, 4
sub edx, 4
lea ecx, [esp + 0x10]
push edx
push eax
call fcn.0044e217
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa8], 1
mov eax, dword [ecx - 8]
mov dl, byte [eax + ecx - 1]
test dl, dl
jne 0x41624e
dec eax
push 1
push eax
lea ecx, [esp + 0x18]
call fcn.0044e249
mov ecx, dword [esi + 4]
lea eax, [esp + 0x10]
push eax
call fcn.0040c300
mov ecx, dword [esi + 4]
call fcn.0040be30
test eax, eax
jne 0x4162dd
mov ecx, dword [esp + 0x10]
push 8
push str.UBOS_42_
push ecx
call fcn.00438980
add esp, 0xc
test eax, eax
jne 0x416283
push 1
jmp 0x4162d5
mov edx, dword [esp + 0x10]
push 8
push str.UBOS_52_
push edx
call fcn.00438980
add esp, 0xc
test eax, eax
jne 0x41629f
push 2
jmp 0x4162d5
mov eax, dword [esp + 0x10]
push 8
push str.UBOS_62_
push eax
call fcn.00438980
add esp, 0xc
test eax, eax
jne 0x4162bb
push 3
jmp 0x4162d5
mov ecx, dword [esp + 0x10]
push 8
push 0x4710c0
push ecx
call fcn.00438980
add esp, 0xc
test eax, eax
jne 0x4162dd
push 4
mov ecx, dword [esi + 4]
call fcn.0040be60
lea ecx, [esp + 0x10]
mov dword [esp + 0xa8], 0xffffffff
call fcn.00453112
jmp 0x41638e
cmp dword [ebp + 8], 0xc
jne case.default.0x4160ed
mov edx, dword [0x471e00]
mov dword [esp + 0x1c], edx
mov dword [esp + 0xa8], 2
mov edi, 4
mov eax, dword [ebp + 0xc]
mov al, byte [edi + eax]
test al, 1
jne 0x416352
and eax, 0xff
lea ecx, [esp + 0x10]
push eax
push str._02X
push ecx
call fcn.004381aa
add esp, 0xc
lea edx, [esp + 0x10]
lea ecx, [esp + 0x1c]
push edx
call fcn.00453354
inc edi
cmp edi, 0xc
jl 0x41631a
jmp 0x41635b
lea ecx, [esp + 0x1c]
call fcn.0045309d
mov ecx, dword [esi + 4]
lea eax, [esp + 0x1c]
push eax
call fcn.0040c6d0
lea ecx, [esp + 0x1c]
mov dword [esp + 0xa8], 0xffffffff
call fcn.00453112
jmp 0x41638e
cmp dword [ebp + 8], 4
jne case.default.0x4160ed
mov ecx, dword [esi + 4]
push 1
call fcn.0040c8d0
mov dword [esi + 0x74], ebx
mov eax, dword [esi + 0xc]
cmp eax, 9
ja case.default.0x41639d
jmp dword [eax*4 + 0x41728c]
mov eax, dword [ebp]
add eax, 0xfffffffe
cmp eax, 4
ja case.0x41639d.0
jmp dword [eax*4 + 0x4172b4]
push 6
mov ecx, esi
call fcn.00417360
jmp case.default.0x4160ed
mov eax, dword [ebp + 0xc]
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
shl edx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
shl ecx, 8
lea eax, [ecx + edx]
cmp eax, 0x80000102
ja 0x416458
je 0x416463
cmp eax, 0x80000000
je 0x416439
cmp eax, 0x80000100
jne case.0x41639d.0
mov eax, dword [ebp + 8]
cmp eax, 8
je 0x416417
cmp eax, 0xc
jne case.0x41639d.0
mov eax, dword [esi + 0x2c]
push ebx
mov dword [esi + 0x5c], 0x80000100
push eax
call fcn.0041b680
add esp, 8
mov ecx, esi
push 4
call fcn.00417360
jmp case.default.0x4160ed
mov ecx, dword [esi + 0x2c]
push 0x834
push ecx
call fcn.0041b680
add esp, 8
mov ecx, esi
push 7
call fcn.00417360
jmp case.default.0x4160ed
cmp eax, 0x80000104
jne case.0x41639d.0
cmp dword [ebp + 8], 8
jl case.0x41639d.0
mov edx, dword [esi + 0x2c]
push ebx
push edx
jmp 0x416423
mov ecx, dword [esi + 4]
call fcn.0040b480
test eax, eax
je 0x416490
mov ecx, dword [esi + 4]
call fcn.0040b4a0
test eax, eax
je 0x4168ae
push 9
mov ecx, esi
call fcn.00417360
jmp case.default.0x4160ed
mov eax, dword [ebp]
sub eax, 2
je 0x4164f2
dec eax
jne case.0x41639d.0
mov dword [esi + 0x14], ebx
mov eax, dword [ebp + 8]
cmp eax, ebx
jne 0x41690b
push 9
mov ecx, esi
call fcn.00417360
jmp case.default.0x4160ed
mov ecx, dword [esi + 4]
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0040cc50
cmp dword [esi + 0x78], ebx
jne 0x416f68
mov ecx, dword [esi + 4]
call fcn.0040c100
cmp eax, dword [esi + 0xc8]
jge 0x41691c
push 9
mov ecx, esi
call fcn.00417360
jmp case.default.0x4160ed
mov eax, dword [ebp]
cmp eax, ebx
je 0x416535
cmp eax, 3
jne 0x417012
mov dword [esi + 0x20], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0xa8], ebx
mov eax, dword [ebp + 8]
cmp eax, ebx
jne 0x417055
push 8
mov ecx, esi
call fcn.00417360
jmp case.default.0x4160ed
push 8
mov ecx, esi
mov dword [esi + 0xa8], ebx
call fcn.00417360
jmp case.default.0x4160ed
mov eax, dword [ebp]
dec eax
cmp eax, 5
ja case.0x41639d.0
jmp dword [eax*4 + 0x4172c8]
mov eax, dword [ebp + 0xc]
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
shl edx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
shl ecx, 8
lea eax, [ecx + edx]
cmp eax, 0x80000000
mov dword [esi + 0x5c], eax
jne 0x4170de
mov eax, dword [esi + 0x28]
push ebx
push eax
call fcn.0041b680
mov ecx, dword [esi + 0x2c]
push 0x834
push ecx
call fcn.0041b680
mov eax, dword [esi + 0xa4]
add esp, 0x10
cmp eax, ebx
je 0x4165d3
push ebx
call fcn.0040f5c0
add esp, 4
mov ecx, esi
push eax
call fcn.0041b710
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xa4], ebx
push 7
mov ecx, esi
call fcn.00417360
jmp case.default.0x4160ed
mov eax, dword [ebp]
sub eax, ebx
je 0x4165f4
dec eax
je 0x41662b
sub eax, 2
jne case.0x41639d.0
mov edx, dword [esi + 0x24]
push ebx
push edx
call fcn.0041b680
add esp, 8
lea ecx, [esi + 0x30]
call fcn.0041c290
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x14], ebx
cmp eax, 0x80000101
je 0x416644
cmp eax, 0x80000100
je 0x416644
push 4
mov ecx, esi
call fcn.00417360
jmp case.default.0x4160ed
lea ecx, [esi + 0x30]
call fcn.0041c290
push 6
mov ecx, esi
mov dword [esi + 0x14], ebx
call fcn.00417360
jmp case.default.0x4160ed
cmp dword [esi + 0xb8], ebx
je 0x4166f8
mov eax, dword [esi + 0xb0]
mov edi, dword [eax + 8]
cmp dword [edi + 4], 0x10b
jne 0x4166f8
push 0x100020b
lea ecx, [edi + 8]
push 1
push ecx
mov ecx, esi
call fcn.0041b720
cmp edi, ebx
je 0x416685
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 4]
mov ecx, dword [esi + 0xb0]
mov eax, dword [ecx]
cmp eax, ebx
mov dword [esi + 0xb0], eax
je 0x41669c
mov dword [eax + 4], ebx
jmp 0x4166a2
mov dword [esi + 0xb4], ebx
mov eax, dword [esi + 0xbc]
mov dword [ecx], eax
mov eax, dword [esi + 0xb8]
dec eax
mov dword [esi + 0xbc], ecx
mov dword [esi + 0xb8], eax
jne 0x4166f8
mov eax, dword [esi + 0xb0]
cmp eax, ebx
je 0x4166cf
mov eax, dword [eax]
cmp eax, ebx
jne 0x4166c9
mov ecx, dword [esi + 0xc0]
mov dword [esi + 0xb8], ebx
mov dword [esi + 0xbc], ebx
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xb0], ebx
call fcn.0044eca1
mov dword [esi + 0xc0], ebx
push 9
mov ecx, esi
call fcn.00417360
jmp case.default.0x4160ed
call fcn.0040f740
push eax
mov ecx, esi
call fcn.0041b710
mov ecx, dword [esi + 0x24]
push ebx
push ecx
call fcn.0041b680
mov edx, dword [esi + 0x2c]
push ebx
push edx
call fcn.0041b680
mov eax, dword [esi + 0x28]
push ebx
push eax
call fcn.0041b680
add esp, 0x18
lea ecx, [esi + 0x78]
push 0x290
push ebx
push ecx
mov ecx, esi
call fcn.0041b720
lea ecx, [esi + 0x30]
call fcn.0041c290
lea edx, [esi + 0x14]
mov ecx, esi
push edx
call fcn.0041b760
cmp dword [esi + 0xb8], ebx
je 0x416837
mov eax, dword [esi + 0xb0]
mov ecx, dword [eax]
mov edi, dword [eax + 8]
cmp ecx, ebx
mov dword [esi + 0xb0], ecx
je 0x41677e
mov dword [ecx + 4], ebx
jmp 0x416784
mov dword [esi + 0xb4], ebx
mov ecx, dword [esi + 0xbc]
mov dword [eax], ecx
mov dword [esi + 0xbc], eax
mov eax, dword [esi + 0xb8]
dec eax
mov dword [esi + 0xb8], eax
jne 0x4167da
mov eax, dword [esi + 0xb0]
cmp eax, ebx
je 0x4167b1
mov eax, dword [eax]
cmp eax, ebx
jne 0x4167ab
mov ecx, dword [esi + 0xc0]
mov dword [esi + 0xb8], ebx
mov dword [esi + 0xbc], ebx
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xb0], ebx
call fcn.0044eca1
mov dword [esi + 0xc0], ebx
mov eax, dword [edi + 4]
add eax, 0xfffffef6
cmp eax, 4
ja case.0x4167e7.268
jmp dword [eax*4 + 0x4172e0]
push 0x100020a
jmp 0x416812
push 0x100020b
lea eax, [edi + 8]
push ebx
push eax
jmp 0x416817
push 0x100020d
lea ecx, [edi + 8]
push ebx
push ecx
jmp 0x416817
push 0x100020e
lea edx, [edi + 8]
push ebx
push edx
mov ecx, esi
call fcn.0041b720
cmp edi, ebx
je 0x41682b
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
cmp dword [esi + 0xb8], ebx
jne 0x416764
mov ecx, esi
mov dword [esi + 0xc8], ebx
mov dword [esi + 0x68], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x6c], 0x10000
call fcn.00417310
mov ecx, dword [esi + 4]
call fcn.0040bcc0
mov ecx, dword [esi + 4]
call fcn.0040bd90
mov ecx, dword [esi + 4]
call fcn.0040bdb0
cmp eax, 5
jne case.default.0x41639d
mov ecx, dword [esi + 4]
push ebx
call fcn.0040bde0
push ebx
mov ecx, esi
call fcn.00417360
jmp case.default.0x4160ed
mov dword [esi + 0x18], ebx
mov ecx, dword [ebp + 8]
push 0x100020d
lea edx, [esi + 0x1c]
push ecx
push edx
jmp 0x417255
mov dword [esi + 0x18], ebx
mov eax, dword [ebp + 8]
push 0x100020e
lea ecx, [esi + 0x1c]
push eax
push ecx
jmp 0x417255
call fcn.0040f730
push eax
mov ecx, esi
call fcn.0041b710
mov edx, dword [esi + 0x2c]
push 0x2a94
push edx
call fcn.0041b680
add esp, 8
mov ecx, esi
push 3
push 0xe100
push 0xe100
call fcn.0041b670
push eax
call fcn.0040e5d0
add esp, 0x10
mov ecx, esi
push eax
call fcn.0041b710
push 2
mov ecx, esi
mov dword [esi + 0x14], eax
call fcn.00417360
mov dword [esi + 0x68], ebx
mov dword [esi + 0x6c], 0x10000
jmp case.0x41639d.0
cmp dword [esi + 0xa4], ebx
je 0x416cda
jmp 0x416cbd
mov edx, dword [esi + 0x18]
xor eax, eax
cmp edx, ebx
setne al
cmp eax, ebx
jne 0x416c8f
mov eax, dword [esi + 0xb8]
xor ebx, ebx
cmp eax, ebx
je 0x416c8f
mov eax, dword [esi + 0xb0]
mov edi, dword [eax + 8]
mov eax, dword [edi + 4]
add eax, 0xfffffef6
cmp eax, 4
ja case.0x416954.268
jmp dword [eax*4 + 0x4172f4]
mov ebx, dword [edi + 0xc]
xor ebp, ebp
cmp ebx, ebp
je 0x41698d
mov ecx, dword [esi + 4]
call fcn.0040c100
mov edx, eax
mov ecx, ebx
mov dword [esp + 0x18], edx
call fcn.0041f110
mov ebx, dword [esi + 0xc8]
mov ecx, dword [esp + 0x18]
add eax, ebx
cmp ecx, eax
jl 0x416a56
push 0x100020a
lea edx, [edi + 8]
push 1
push edx
mov ecx, esi
call fcn.0041b720
mov ecx, dword [esi + 0xb0]
mov eax, dword [ecx]
cmp eax, ebp
mov dword [esi + 0xb0], eax
je 0x4169b6
mov dword [eax + 4], ebp
jmp 0x4169bc
mov dword [esi + 0xb4], ebp
mov eax, dword [esi + 0xbc]
mov dword [ecx], eax
mov eax, dword [esi + 0xb8]
dec eax
mov dword [esi + 0xbc], ecx
mov dword [esi + 0xb8], eax
jne 0x416a12
mov eax, dword [esi + 0xb0]
cmp eax, ebp
je 0x4169e9
mov eax, dword [eax]
cmp eax, ebp
jne 0x4169e3
mov ecx, dword [esi + 0xc0]
mov dword [esi + 0xb8], ebp
mov dword [esi + 0xbc], ebp
mov dword [esi + 0xb4], ebp
mov dword [esi + 0xb0], ebp
call fcn.0044eca1
mov dword [esi + 0xc0], ebp
mov ecx, dword [edi + 0xc]
cmp ecx, ebp
je 0x416a24
call fcn.0041f110
add dword [esi + 0xc8], eax
cmp edi, ebp
je case.0x416954.268
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 4]
jmp case.0x416954.268
cmp dword [esi + 0x18], ebx
je 0x416dff
jmp case.0x416954.268
cmp dword [esi + 0x18], ebx
je 0x416e8d
jmp case.0x416954.268
mov eax, dword [edi + 8]
mov ecx, esi
mov dword [esi + 0x20], eax
call fcn.0041b670
mov ecx, dword [esi + 4]
mov dword [esi + 0x78], eax
call fcn.0040c100
lea ebp, [esi + 0x80]
push 4
mov ecx, ebp
mov ebx, eax
call fcn.0041f210
mov ecx, ebx
mov edx, ebx
shr ecx, 0x18
mov byte [eax], cl
mov ecx, ebx
shr ecx, 8
shr edx, 0x10
mov byte [eax + 2], cl
push 4
mov ecx, ebp
mov byte [eax + 1], dl
mov byte [eax + 3], bl
call fcn.0041f260
mov edx, dword [esi + 0xc8]
mov eax, dword [esi + 0x68]
mov ebp, ebx
mov dword [esi + 0xa0], 0x7530
sub ebp, edx
cmp ebx, eax
jne 0x416adc
test eax, eax
je 0x416adc
mov edx, dword [esi + 0x70]
mov ecx, dword [esi + 4]
inc edx
mov eax, edx
mov dword [esi + 0x70], edx
push eax
call fcn.0040c130
mov ecx, esi
call fcn.004173f0
jmp 0x416af4
mov ecx, dword [esi + 4]
push 0
mov dword [esi + 0x70], 0
call fcn.0040c130
mov ecx, esi
call fcn.004173c0
mov edx, dword [esi + 0x6c]
mov ecx, dword [esi + 4]
push edx
call fcn.0040cb80
mov ecx, dword [esi + 4]
mov dword [esi + 0x68], ebx
call fcn.0040c8a0
test eax, eax
je 0x416d0d
cmp dword [esi + 0x6c], 0xc000
jl 0x416d0d
mov ecx, dword [esi + 4]
call fcn.0040c060
cmp eax, 7
jne 0x416b40
mov ecx, dword [esi + 4]
call fcn.0040c000
cmp eax, 0xc4e00
jge 0x416d0d
mov eax, dword [esi + 0x6c]
cmp eax, 0xfff3
mov ebx, eax
jl 0x416b51
mov ebx, 0xfff3
mov ecx, dword [edi + 0xc]
call fcn.0041f110
sub eax, ebp
cmp ebx, eax
jge 0x416b70
mov eax, dword [esi + 0x6c]
cmp eax, 0xfff3
jl 0x416b7a
mov eax, 0xfff3
jmp 0x416b7a
mov ecx, dword [edi + 0xc]
call fcn.0041f110
sub eax, ebp
cmp eax, 0xc
mov dword [esi + 0xa4], eax
movsb byte es:[edi], byte [esi]
add byte [eax], al
add byte [edi], cl
invalid
test byte [ecx], al
add byte [eax], al
mov ecx, dword [edi + 0xc]
push eax
mov ecx, dword [edi + 8]
mov dword [esi + 0x20], ecx
mov ecx, esi
call fcn.0041b670
lea edi, [esi + 0x80]
push 4
mov ecx, edi
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], ebx
call fcn.0041f210
mov edx, dword [esi + 0xc8]
push 4
shr edx, 0x18
mov byte [eax], dl
mov ecx, dword [esi + 0xc8]
shr ecx, 0x10
mov byte [eax + 1], cl
mov edx, dword [esi + 0xc8]
shr edx, 8
mov byte [eax + 2], dl
mov cl, byte [esi + 0xc8]
mov byte [eax + 3], cl
mov ecx, edi
call fcn.0041f260
mov dword [esi + 0xa4], ebx
mov dword [esi + 0xa0], 0x15e
jmp 0x416c8f
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
push edx
push eax
push ecx
mov ecx, esi
call fcn.0041b670
push eax
call fcn.0040e870
add esp, 0x10
mov ecx, esi
push eax
call fcn.0041b710
mov dword [esi + 0x18], eax
mov edx, dword [edi + 8]
cmp edi, ebx
mov dword [esi + 0x1c], edx
je 0x416e39
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 4]
mov ecx, dword [esi + 0xb0]
mov eax, dword [ecx]
cmp eax, ebx
mov dword [esi + 0xb0], eax
je 0x416e50
mov dword [eax + 4], ebx
jmp 0x416e56
mov dword [esi + 0xb4], ebx
mov edx, dword [esi + 0xbc]
mov dword [ecx], edx
mov eax, dword [esi + 0xb8]
dec eax
mov dword [esi + 0xbc], ecx
mov dword [esi + 0xb8], eax
jne 0x416f2e
mov eax, dword [esi + 0xb0]
cmp eax, ebx
je 0x416f05
mov eax, dword [eax]
cmp eax, ebx
jne 0x416e85
jmp 0x416f05
mov ecx, esi
call fcn.0041b670
push eax
call fcn.0040e8a0
add esp, 4
mov ecx, esi
push eax
call fcn.0041b710
mov dword [esi + 0x18], eax
mov eax, dword [edi + 8]
cmp edi, ebx
mov dword [esi + 0x1c], eax
je 0x416ebb
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 4]
mov ecx, dword [esi + 0xb0]
mov eax, dword [ecx]
cmp eax, ebx
mov dword [esi + 0xb0], eax
je 0x416ed2
mov dword [eax + 4], ebx
jmp 0x416ed8
mov dword [esi + 0xb4], ebx
mov eax, dword [esi + 0xbc]
mov dword [ecx], eax
mov eax, dword [esi + 0xb8]
dec eax
mov dword [esi + 0xbc], ecx
mov dword [esi + 0xb8], eax
jne 0x416f2e
mov eax, dword [esi + 0xb0]
cmp eax, ebx
je 0x416f05
mov eax, dword [eax]
cmp eax, ebx
jne 0x416eff
mov ecx, dword [esi + 0xc0]
mov dword [esi + 0xb8], ebx
mov dword [esi + 0xbc], ebx
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xb0], ebx
call fcn.0044eca1
mov dword [esi + 0xc0], ebx
push 1
mov ecx, esi
call fcn.00417360
jmp case.0x41639d.0
cmp eax, 7
jne case.0x41639d.0
mov eax, dword [esi + 0xa8]
cmp eax, ebx
mov dword [esp + 0x18], eax
je case.0x41639d.0
fild dword [ebp + 8]
fidiv dword [esp + 0x18]
fimul dword [esi + 0xa4]
call fcn.00438344
push eax
call fcn.0040f5e0
add esp, 4
mov ecx, esi
push eax
call fcn.0041b710
jmp case.0x41639d.0
mov eax, dword [esi + 0x24]
push ebx
push eax
call fcn.0041b680
mov ecx, dword [esi + 0xa4]
push ecx
call fcn.0040f5e0
add esp, 0xc
mov ecx, esi
push eax
call fcn.0041b710
push 0x290
lea edx, [esi + 0x10]
push 1
push edx
mov ecx, esi
call fcn.0041b720
push 4
mov ecx, esi
call fcn.00417360
jmp case.0x41639d.0
mov eax, dword [esi + 0x2c]
push 0x834
push eax
call fcn.0041b680
mov ecx, dword [esi + 0x24]
push ebx
push ecx
call fcn.0041b680
add esp, 0x10
lea ecx, [esi + 0x30]
call fcn.0041c290
push 0x290
lea edx, [esi + 0x10]
push ebx
push edx
mov ecx, esi
mov dword [esi + 0x20], ebx
mov dword [esi + 0x14], ebx
call fcn.0041b720
push 4
mov ecx, esi
call fcn.00417360
jmp case.0x41639d.0
and eax, 0xff00
cmp eax, 0x100
jne case.0x41639d.0
cmp dword [ebp + 8], 8
jl case.0x41639d.0
lea edi, [esi + 0x30]
mov ecx, edi
call fcn.0041c290
mov eax, dword [ebp + 0xc]
xor edx, edx
xor ebx, ebx
mov ecx, dword [ebp + 8]
mov dl, byte [eax + 4]
mov bl, byte [eax + 5]
shl edx, 8
add edx, ebx
xor ebx, ebx
mov bl, byte [eax + 6]
mov ebp, ecx
shl edx, 8
add edx, ebx
xor ebx, ebx
mov bl, byte [eax + 7]
push 4
shl edx, 8
add ebp, edx
xor edx, edx
add ebx, ebp
mov ebp, ecx
mov dword [esi + 0x18], ebx
mov eax, dword [ebp + 8]
push 0x100020d
lea ecx, [esi + 0x1c]
push eax
push ecx
jmp 0x417255
mov dword [esi + 0x18], ebx
mov edx, dword [ebp + 8]
push 0x100020e
lea eax, [esi + 0x1c]
push edx
push eax
mov ecx, esi
call fcn.0041b720