Function at 0x404ac0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x34
mov ax, word [0x41cf06]
push ebx
push ebp
push esi
push edi
xor edi, edi
push 0x400
xor ebx, ebx
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x34], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], edi
mov dword [0x416044], 0x41ad28
mov word [esp + 0x14], ax
mov dword [0x424f24], 1
call fcn.0040db30
mov esi, eax
add esp, 4
cmp esi, edi
mov dword [0x41c700], esi
jne 0x404b2c
pop edi
pop esi
pop ebp
mov eax, 5
pop ebx
add esp, 0x34
ret
xor edx, edx
mov al, byte [edx + 0x417c34]
mov ecx, 0x1f
sub ecx, eax
mov eax, 1
shl eax, cl
or edi, eax
inc edx
cmp edx, 0xe
jb 0x404b2e
mov dword [esi], 0
mov ecx, 1
mov eax, ecx
mov edx, 8
test al, 1
je 0x404b66
shr eax, 1
xor eax, edi
jmp 0x404b68
shr eax, 1
dec edx
jne 0x404b5c
mov edx, dword [0x41c700]
inc ecx
cmp ecx, 0x100
mov dword [edx + ecx*4 - 4], eax
jl 0x404b55
mov eax, dword [0x41cef4]
test eax, eax
jle 0x404bc1
shl eax, 2
push eax
call fcn.0040db30
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x20], edi
je 0x404bc5
mov ecx, dword [0x41cef4]
xor eax, eax
test ecx, ecx
jle 0x404bc5
mov ecx, edi
mov dword [ecx], 0
mov edx, dword [0x41cef4]
inc eax
add ecx, 4
cmp eax, edx
jl 0x404bab
jmp 0x404bc5
mov edi, dword [esp + 0x20]
mov eax, dword [0x41cf18]
test eax, eax
jle 0x404c0c
lea ecx, [eax*4]
push ecx
call fcn.0040db30
mov ebp, eax
add esp, 4
test ebp, ebp
mov dword [esp + 0x24], ebp
je 0x404c10
mov ecx, dword [0x41cf18]
xor eax, eax
test ecx, ecx
jle 0x404c10
mov ecx, ebp
mov dword [ecx], 0
mov edx, dword [0x41cf18]
inc eax
add ecx, 4
cmp eax, edx
jl 0x404bf6
jmp 0x404c10
mov ebp, dword [esp + 0x24]
mov ax, word [esp + 0x10]
test ax, ax
je 0x405d86
test ax, ax
mov dword [esp + 0x14], 0
je 0x404e97
mov edi, 0x41ad28
cmp edi, 0x41b328
jge 0x404e97
mov eax, dword [esp + 0x10]
push 4
add eax, 0xffff
push 0x41cd38
mov dword [esp + 0x18], eax
mov dword [0x416044], edi
call fcn.00406520
add esp, 8
test eax, eax
je 0x404df5
push 4
push 0x424f80
push 0x41cd38
call fcn.0040dc90
add esp, 0xc
test eax, eax
jne 0x404e07
call fcn.004027a0
xor ebp, ebp
cmp eax, ebp
jne 0x404e3c
mov edx, dword [0x424f58]
push 2
and edx, 0xffff
push edx
call fcn.004071f0
add esp, 8
cmp eax, ebp
je 0x404cbf
cmp eax, ebx
jle 0x404cb6
mov ebx, eax
cmp eax, 1
jg 0x404e40
xor eax, eax
push 3
mov ax, word [0x424f5a]
push eax
call fcn.004071f0
add esp, 8
cmp eax, ebp
je 0x404ce5
cmp eax, ebx
jle 0x404cdc
mov ebx, eax
cmp eax, 1
jg 0x404e5e
mov ecx, dword [0x424f5c]
push ebp
and ecx, 0xffff
push ecx
call fcn.004071f0
add esp, 8
cmp eax, ebp
je 0x404d0e
cmp eax, ebx
jle 0x404d05
mov ebx, eax
cmp eax, 1
jg 0x404e7c
cmp dword [0x41a8f0], ebp
je 0x404d34
call fcn.00406020
test eax, eax
je 0x404de1
mov ecx, dword [esp + 0x14]
inc ecx
add edi, 0x18
mov dword [esp + 0x14], ecx
jmp 0x404de5
mov esi, dword [0x41603c]
mov eax, dword [esi]
cmp eax, ebp
je 0x404de5
mov edx, dword [0x41a8a8]
push edx
push eax
push 0x41cde0
call fcn.00408e20
add esp, 0xc
test eax, eax
jne 0x404d69
mov eax, dword [esi + 4]
add esi, 4
cmp eax, ebp
jne 0x404d44
jmp 0x404de5
mov eax, dword [esp + 0x20]
cmp eax, ebp
je 0x404d81
sub esi, dword [0x41603c]
sar esi, 2
mov dword [eax + esi*4], 1
mov esi, dword [0x416040]
mov eax, dword [esi]
cmp eax, ebp
je 0x404db0
mov ecx, dword [0x41a8a8]
push ecx
push eax
push 0x41cde0
call fcn.00408e20
add esp, 0xc
test eax, eax
jne 0x404dc7
mov eax, dword [esi + 4]
add esi, 4
cmp eax, ebp
jne 0x404d8d
call fcn.00406020
test eax, eax
je 0x404de1
mov ecx, dword [esp + 0x14]
inc ecx
add edi, 0x18
mov dword [esp + 0x14], ecx
jmp 0x404de5
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x404de5
sub esi, dword [0x416040]
sar esi, 2
mov dword [eax + esi*4], 1
jmp 0x404de5
inc dword [esp + 0x1c]
cmp word [esp + 0x10], bp
jne 0x404c34
jmp 0x404e97
mov ebx, 0x33
mov dword [esp + 0x10], 0
jmp 0x404e97
mov edx, dword [esp + 0x14]
push edx
push 0x4160e8
push 0x419ea0
call fcn.0040dba4
push 0x4161e4
push 0x419ea0
call fcn.0040dba4
add esp, 0x14
mov ebx, 3
mov dword [esp + 0x10], 0
jmp 0x404e97
mov ebx, eax
jmp 0x404e93
push 0x417c44
push 0x41cde0
push 0x417794
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
jmp 0x404e93
push 0x417c4c
push 0x41cde0
push 0x4177b4
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
jmp 0x404e93
push 0x41cde0
push 0x417884
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov dword [esp + 0x10], ebp
mov eax, dword [0x424f78]
mov ecx, dword [0x41cdc4]
mov edx, dword [0x41cd24]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
test eax, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x2c], 0
jle 0x405c3b
mov eax, dword [esp + 0x30]
shl eax, 6
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov edi, dword [0x41a8f4]
add ecx, eax
lea edx, [eax + eax*2]
mov dword [esp + 0x18], ecx
lea eax, [edx*8 + 0x41ad28]
mov dword [0x416044], eax
add edi, dword [eax]
mov esi, edi
and esi, 0x80001fff
jns 0x404f0a
dec esi
or esi, 0xffffe000
inc esi
mov ebp, edi
sub ebp, esi
test edi, edi
jge 0x404fc0
mov eax, dword [0x41cddc]
push 0x4161e4
push eax
push 0x416130
push 0x419ea0
call fcn.0040dba4
mov eax, dword [esp + 0x28]
add esp, 0x10
test eax, eax
mov ebx, 2
jne 0x4051ea
mov eax, dword [0x41a8f4]
test eax, eax
je 0x4051ea
push 0x4178d8
push 0x419ea0
call fcn.0040dba4
mov edx, dword [0x416044]
mov ecx, dword [0x41a8f4]
mov dword [0x41a8f4], 0
add esp, 8
mov edi, dword [edx]
mov dword [esp + 0x28], ecx
mov esi, edi
and esi, 0x80001fff
jns 0x404f91
dec esi
or esi, 0xffffe000
inc esi
mov ebp, edi
sub ebp, esi
test edi, edi
jge 0x404fc0
mov eax, dword [0x41cddc]
push 0x4161e4
push eax
push 0x416130
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
mov ebx, 3
jmp case.0x4053ee.69
cmp ebp, dword [0x424f78]
je 0x405026
mov ecx, dword [0x41cdd8]
push 0
push ebp
push ecx
call fcn.004121e5
mov edx, dword [0x41cd20]
mov dword [0x424f78], eax
mov eax, dword [0x41cdd8]
push 0x2000
push edx
push eax
call fcn.0041227f
add esp, 0x18
mov dword [0x41cd24], eax
test eax, eax
jg 0x40500f
mov ecx, dword [esp + 0x18]
push ebp
push 0x417c54
push ecx
jmp 0x4051d8
mov edx, dword [0x41cd20]
add edx, esi
sub eax, esi
mov dword [0x41cdc4], edx
mov dword [0x41cd24], eax
jmp 0x40504a
mov eax, dword [0x41cd20]
mov ecx, dword [0x41cdc4]
mov edx, dword [0x41cd24]
sub ecx, eax
sub ecx, esi
add edx, ecx
add eax, esi
mov dword [0x41cd24], edx
mov dword [0x41cdc4], eax
push 4
push 0x41cd38
call fcn.00406520
add esp, 8
test eax, eax
jne 0x40506d
mov eax, dword [esp + 0x18]
push edi
push 0x417c5c
push eax
jmp 0x4051d8
push 4
push 0x41cee8
push 0x41cd38
call fcn.0040dc90
add esp, 0xc
test eax, eax
je 0x4051f4
mov ebp, dword [esp + 0x18]
push edi
push 0x4178a4
push ebp
push 0x4177d8
push 0x419ea0
call fcn.0040dba4
mov eax, dword [0x41a8f4]
add esp, 0x14
test ebp, ebp
mov ebx, 2
jne 0x4050ba
test eax, eax
jne 0x4050ce
jmp 0x4050c2
test eax, eax
jne case.0x4053ee.69
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x4053ee.69
push 0x4178d8
push 0x419ea0
call fcn.0040dba4
mov eax, dword [0x41a8f4]
add esp, 8
test eax, eax
je 0x4050f1
mov dword [esp + 0x28], eax
xor eax, eax
jmp 0x4050f5
mov eax, dword [esp + 0x28]
mov ecx, dword [0x416044]
mov dword [0x41a8f4], eax
add eax, dword [ecx]
mov esi, eax
and esi, 0x80001fff
jns 0x405114
dec esi
or esi, 0xffffe000
inc esi
mov ecx, eax
sub ecx, esi
test eax, eax
jl 0x405d16
cmp ecx, dword [0x424f78]
je 0x40517a
mov edx, dword [0x41cdd8]
push 0
push ecx
push edx
call fcn.004121e5
mov ecx, dword [0x41cdd8]
mov dword [0x424f78], eax
mov eax, dword [0x41cd20]
push 0x2000
push eax
push ecx
call fcn.0041227f
add esp, 0x18
mov dword [0x41cd24], eax
test eax, eax
jle 0x405d3a
mov edx, dword [0x41cd20]
add edx, esi
sub eax, esi
mov dword [0x41cdc4], edx
mov dword [0x41cd24], eax
jmp 0x40519e
mov ecx, dword [0x41cdc4]
mov eax, dword [0x41cd20]
mov edx, dword [0x41cd24]
sub ecx, eax
sub ecx, esi
add edx, ecx
add eax, esi
mov dword [0x41cd24], edx
mov dword [0x41cdc4], eax
push 4
push 0x41cd38
call fcn.00406520
add esp, 8
test eax, eax
jne 0x4051b9
push edi
push 0x417c60
jmp 0x4051d7
push 4
push 0x41cee8
push 0x41cd38
call fcn.0040dc90
add esp, 0xc
test eax, eax
je 0x4051f8
push edi
push 0x4178a4
push ebp
push 0x4177d8
push 0x419ea0
call fcn.0040dba4
add esp, 0x14
mov ebx, 3
jmp case.0x4053ee.69
mov ebp, dword [esp + 0x18]
call fcn.00402870
mov esi, eax
test esi, esi
je 0x40521d
push ebp
push 0x4178b8
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov ebx, esi
jmp case.0x4053ee.69
mov edx, dword [0x41cd78]
push 2
and edx, 0xffff
push edx
call fcn.004071f0
add esp, 8
test eax, eax
je 0x405264
cmp eax, ebx
jle 0x40523e
mov ebx, eax
cmp eax, 1
jle 0x405264
push 0x417c64
push 0x41cde0
push 0x417794
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
jmp case.0x4053ee.69
mov eax, dword [0x41a8f8]
test eax, eax
je 0x405280
push eax
call fcn.0040df2e
add esp, 4
mov dword [0x41a8f8], 0
xor eax, eax
push 3
mov ax, word [0x41cd7a]
push eax
call fcn.004071f0
add esp, 8
test eax, eax
je 0x4052c3
cmp eax, ebx
jle 0x40529d
mov ebx, eax
cmp eax, 1
jle 0x4052c3
push 0x417c6c
push 0x41cde0
push 0x4177b4
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
jmp case.0x4053ee.69
mov eax, dword [0x41a8d8]
test eax, eax
jne case.0x4053ee.68
mov eax, dword [0x41a8a4]
test eax, eax
jne case.0x4053ee.68
xor esi, esi
push esi
call fcn.0040d5e0
add esp, 4
cmp eax, 1
jg 0x405510
push 0x41cde0
call fcn.004069d0
add esp, 4
cmp eax, 0xffffffff
je 0x40547f
test eax, eax
je 0x40534e
cmp eax, 1
jne case.0x4053ee.68
mov eax, dword [0x41a8c0]
test eax, eax
jne case.0x4053ee.69
mov eax, dword [0x41a8e0]
test eax, eax
je 0x405332
test esi, esi
je case.0x4053ee.69
mov eax, dword [0x41a8c4]
test eax, eax
jne case.0x4053ee.68
mov eax, dword [0x41a8c8]
test eax, eax
jne case.0x4053ee.68
jmp 0x405375
mov eax, dword [0x41a8c0]
test eax, eax
jne case.0x4053ee.69
mov eax, dword [0x41a8c4]
test eax, eax
jne case.0x4053ee.68
mov eax, dword [0x41a8c8]
test eax, eax
jne case.0x4053ee.68
push 0x41cde0
push 0x417920
push 0x419ea0
call fcn.0040dba4
push 0x419ea0
call fcn.0040df5d
push 0x419e60
push 9
push 0x424f30
call fcn.0040e1d8
add esp, 0x1c
test eax, eax
jne 0x4053d7
push 0x417954
push 0x419ea0
call fcn.0040dba4
push 0x419ea0
call fcn.0040df5d
add esp, 0xc
mov byte [0x424f30], 0x4e
test ebx, ebx
jne 0x4053d7
mov ebx, 1
xor eax, eax
mov al, byte [0x424f30]
lea ecx, [eax - 0x41]
cmp ecx, 0x38
ja case.0x4053ee.70
xor edx, edx
mov dl, byte [ecx + 0x405fc0]
jmp dword [edx*4 + 0x405fa8]
push eax
push 0x41797c
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
jmp 0x405375
mov esi, 0x41cde0
dec esi
push 0x417970
push 0x419ea0
call fcn.0040dba4
push 0x419ea0
call fcn.0040df5d
push 0x419e60
push 0x105
push 0x41cde0
call fcn.0040e1d8
mov edi, 0x41cde0
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [esi + ecx], 0xa
jne 0x405460
dec ecx
mov byte [ecx + 0x41cde0], 0
test ecx, ecx
je 0x405413
mov esi, 1
push esi
call fcn.0040d5e0
add esp, 4
cmp eax, esi
jg 0x405510
jmp 0x4052f1
mov eax, dword [0x41a8b0]
test eax, eax
je case.0x4053ee.68
test esi, esi
je case.0x4053ee.69
mov esi, 1
mov eax, dword [0x41a8d8]
xor ebp, ebp
xor edi, edi
cmp eax, ebp
mov dword [0x424f74], ebp
mov dword [0x41cf14], ebp
mov dword [0x41cdc8], ebp
mov byte [0x41c708], 0
mov dword [0x41c704], esi
mov dword [0x41c70c], 0xffffffff
je 0x40559f
cmp dword [0x41a8cc], ebp
jne 0x4055cc
push 0x41b338
push 0x41b33c
push 0x41cde0
push 0x417cc0
push 0x417804
push 0x419e80
call fcn.0040dba4
push 0x419e80
call fcn.0040df5d
add esp, 0x1c
jmp 0x4055cc
cmp eax, 0x4d
je case.0x4053ee.69
cmp eax, 0x4e
jne 0x40554e
mov eax, dword [0x41a8d4]
test eax, eax
mov eax, 0x417c74
jne 0x405531
mov eax, 0x41b328
push eax
push 0x41cde0
push 0x4178fc
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
jmp case.0x4053ee.69
cmp eax, 2
jle case.0x4053ee.69
cmp ebx, 2
jge case.0x4053ee.69
mov ebx, 2
jmp case.0x4053ee.69
mov esi, 1
mov dword [0x41a8c0], 0
mov dword [0x41a8c4], esi
jmp 0x405495
xor eax, eax
mov dword [0x41a8c0], 1
mov dword [0x41a8c4], eax
mov dword [0x41a8c8], eax
jmp case.0x4053ee.69
cmp dword [0x41a8a4], ebp
je 0x405620
push 0x8000
push 0x419e80
mov dword [0x41cd30], 0x419e80
call fcn.004134b1
add esp, 4
push eax
call fcn.0041304c
add esp, 8
mov eax, dword [0x41cd64]
and eax, 0xffff
cmp eax, 8
ja case.0x4055df.7
jmp dword [eax*4 + 0x405ffc]
cmp dword [0x41a8d8], ebp
jne 0x405681
cmp dword [0x41a8cc], ebp
jne 0x405681
mov eax, dword [0x41a8a4]
mov ecx, 0x417cc8
cmp eax, ebp
jne 0x405611
mov ecx, 0x41b340
cmp dword [0x41a8a0], esi
je 0x405633
mov eax, 0x41b344
jmp 0x405659
call fcn.004064b0
test eax, eax
je 0x4055cc
mov eax, 0x32
jmp 0x405c14
cmp dword [0x41cd74], ebp
jne 0x405642
mov eax, 0x417c9c
jmp 0x405659
mov eax, dword [0x416044]
mov dl, byte [eax + 0x14]
mov eax, 0x417ca8
test dl, 4
jne 0x405659
mov eax, 0x417cb4
push ecx
push eax
push 0x41cde0
push 0x417ccc
push 0x417804
push 0x419e80
call fcn.0040dba4
push 0x419e80
call fcn.0040df5d
add esp, 0x1c
xor ecx, ecx
mov dword [0x424f20], 0x41cf20
mov dword [0x41cdd0], ecx
mov esi, 0x41cf20
mov eax, dword [0x41c714]
mov edx, eax
dec eax
test edx, edx
mov dword [0x41c714], eax
jle 0x405730
mov eax, dword [0x41cd24]
dec eax
mov dword [0x41cd24], eax
js 0x4056cd
mov ecx, dword [0x41cdc4]
xor eax, eax
mov al, byte [ecx]
inc ecx
mov dword [0x41cdc4], ecx
jmp 0x4056d2
call fcn.00406600
cmp eax, 0xffffffff
je 0x40572a
mov ecx, dword [0x424f74]
test ecx, ecx
jne 0x40572a
mov ecx, dword [0x424f20]
mov byte [ecx], al
mov ebp, dword [0x424f20]
mov ecx, dword [0x41cdd0]
inc ebp
inc ecx
mov dword [0x424f20], ebp
cmp ecx, 0x8000
mov dword [0x41cdd0], ecx
jne 0x405698
push 0
push ecx
push esi
call fcn.00406660
add esp, 0xc
xor ecx, ecx
mov dword [0x424f20], esi
mov dword [0x41cdd0], ecx
jmp 0x405698
mov ecx, dword [0x41cdd0]
test ecx, ecx
je 0x405b25
push 0
push ecx
push 0x41cf20
call fcn.00406660
add esp, 0xc
jmp 0x405b25
cmp dword [0x41a8d8], ebp
jne 0x4057bd
cmp dword [0x41a8cc], ebp
jne 0x4057bd
mov eax, dword [0x41a8a4]
mov ecx, 0x417cd4
cmp eax, ebp
jne 0x405770
mov ecx, 0x41b348
cmp dword [0x41a8a0], esi
je 0x40577f
mov eax, 0x41b34c
jmp 0x405795
mov edx, dword [0x416044]
test byte [edx + 0x14], 4
mov eax, 0x417ca8
jne 0x405795
mov eax, 0x417cb4
push ecx
push eax
push 0x41cde0
push 0x417b64
push 0x417804
push 0x419e80
call fcn.0040dba4
push 0x419e80
call fcn.0040df5d
add esp, 0x1c
call fcn.004097e0
mov esi, eax
cmp esi, ebp
je 0x405b25
mov eax, dword [0x41a8d8]
cmp eax, ebp
mov eax, dword [0x41a8cc]
je 0x4057ff
cmp eax, ebp
jne 0x405803
push 0x417b64
push 0x417b20
push 0x417b0c
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
jmp 0x405b23
cmp eax, ebp
je 0x4057de
push 0x41cde0
push 0x417b64
push 0x417b20
push 0x417af8
push 0x419ea0
call fcn.0040dba4
add esp, 0x14
jmp 0x405b23
cmp dword [0x41a8d8], ebp
jne 0x40589a
cmp dword [0x41a8cc], ebp
jne 0x40589a
mov eax, dword [0x41a8a4]
mov ecx, 0x417cd8
cmp eax, ebp
jne 0x40584c
mov ecx, 0x41b350
cmp dword [0x41a8a0], esi
je 0x40585b
mov eax, 0x41b354
jmp 0x405872
mov eax, dword [0x416044]
mov dl, byte [eax + 0x14]
mov eax, 0x417ca8
test dl, 4
jne 0x405872
mov eax, 0x417cb4
push ecx
push eax
push 0x41cde0
push 0x417cdc
push 0x417804
push 0x419e80
call fcn.0040dba4
push 0x419e80
call fcn.0040df5d
add esp, 0x1c
call fcn.004090c0
jmp 0x405b25
cmp dword [0x41a8d8], ebp
jne 0x405914
cmp dword [0x41a8cc], ebp
jne 0x405914
mov eax, dword [0x41a8a4]
mov ecx, 0x417ce4
cmp eax, ebp
jne 0x4058c7
mov ecx, 0x41b358
cmp dword [0x41a8a0], esi
je 0x4058d6
mov eax, 0x41b35c
jmp 0x4058ec
mov edx, dword [0x416044]
test byte [edx + 0x14], 4
mov eax, 0x417ca8
jne 0x4058ec
mov eax, 0x417cb4
push ecx
push eax
push 0x41cde0
push 0x417ce8
push 0x417804
push 0x419e80
call fcn.0040dba4
push 0x419e80
call fcn.0040df5d
add esp, 0x1c
call fcn.004043b0
mov esi, eax
cmp esi, ebp
je 0x40596c
cmp esi, 5
je 0x405975
mov eax, dword [0x41a8d8]
cmp eax, ebp
mov eax, dword [0x41a8cc]
je 0x40599a
cmp eax, ebp
jne 0x40599e
cmp esi, 3
mov eax, 0x417b20
je 0x405945
mov eax, 0x417b38
push 0x417b5c
push eax
push 0x417b0c
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
mov edi, esi
sub edi, 3
neg edi
sbb edi, edi
and edi, 0xfffffffc
add edi, 6
cmp esi, 5
jne 0x405b25
mov ecx, dword [0x41cd70]
mov edx, dword [0x41cd40]
mov eax, dword [0x41a8d8]
cmp ecx, edx
sbb esi, esi
inc esi
cmp eax, ebp
mov eax, dword [0x41a8cc]
je 0x4059cc
cmp eax, ebp
jne 0x4059d0
jmp 0x405a0b
cmp eax, ebp
je 0x405936
cmp esi, 3
mov eax, 0x417b20
je 0x4059ad
mov eax, 0x417b38
push 0x41cde0
push 0x417b5c
push eax
push 0x417af8
push 0x419ea0
call fcn.0040dba4
add esp, 0x14
jmp 0x40595d
cmp eax, ebp
je 0x405a0b
cmp esi, ebp
je 0x4059e0
mov edi, 0x417cf8
mov eax, 0x417cfc
jmp 0x4059ea
mov edi, 0x41b360
mov eax, 0x417d04
push 0x417cf0
push 0x41cde0
push 0x417cf4
push ecx
mov ecx, dword [0x41cd74]
push edi
push ecx
push edx
push eax
push 0x41b364
jmp 0x405a44
cmp esi, ebp
je 0x405a1b
mov edi, 0x417d10
mov eax, 0x417d14
jmp 0x405a25
mov edi, 0x41b370
mov eax, 0x417d1c
push 0x417d0c
push 0x41b368
push 0x41b36c
push ecx
mov ecx, dword [0x41cd74]
push edi
push ecx
push edx
push eax
push 0x417d24
push 0x417818
push 0x419ea0
call fcn.0040dba4
add esp, 0x2c
neg esi
sbb esi, esi
add esi, 2
jmp 0x405b23
cmp dword [0x41a8d8], ebp
jne 0x405ad2
cmp dword [0x41a8cc], ebp
jne 0x405ad2
mov eax, dword [0x41a8a4]
mov ecx, 0x417d28
cmp eax, ebp
jne 0x405a85
mov ecx, 0x41b374
cmp dword [0x41a8a0], esi
je 0x405a94
mov eax, 0x41b378
jmp 0x405aaa
mov edx, dword [0x416044]
test byte [edx + 0x14], 4
mov eax, 0x417ca8
jne 0x405aaa
mov eax, 0x417cb4
push ecx
push eax
push 0x41cde0
push 0x417d2c
push 0x417804
push 0x419e80
call fcn.0040dba4
push 0x419e80
call fcn.0040df5d
add esp, 0x1c
call fcn.00408d20
mov esi, eax
cmp esi, ebp
je 0x405b25
mov eax, dword [0x41a8d8]
cmp eax, ebp
mov eax, dword [0x41a8cc]
je 0x405b3f
cmp eax, ebp
jne 0x405b43
cmp esi, 3
mov eax, 0x417b20
je 0x405afe
mov eax, 0x417b38
push 0x417b54
push eax
push 0x417b0c
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
sub esi, 3
neg esi
sbb esi, esi
and esi, 0xfffffffc
add esi, 6
mov edi, esi
mov eax, dword [0x424f74]
xor ebp, ebp
cmp eax, ebp
je 0x405b76
cmp eax, 1
jle 0x405b71
mov eax, 0x32
jmp 0x405c0f
cmp eax, ebp
je 0x405aef
cmp esi, 3
mov eax, 0x417b20
je 0x405b52
mov eax, 0x417b38
push 0x41cde0
push 0x417b54
push eax
push 0x417af8
push 0x419ea0
call fcn.0040dba4
add esp, 0x14
jmp 0x405b16
mov edi, 1
cmp dword [0x41a8d8], ebp
jne 0x405b8b
cmp dword [0x41a8a4], ebp
jne 0x405b8b
call fcn.0040c560
cmp edi, 1
jg 0x405c09
mov eax, dword [0x41c70c]
mov ecx, dword [0x41cd6c]
not eax
cmp eax, ecx
mov dword [0x41c70c], eax
je 0x405ca4
mov ecx, dword [0x41a8d8]
cmp ecx, ebp
mov ecx, dword [0x41a8cc]
je 0x405bc0
cmp ecx, ebp
jne 0x405bc4
jmp 0x405be0
cmp ecx, ebp
je 0x405be0
push 0x41cde0
push 0x417d34
push 0x419ea0
call fcn.0040dba4
mov eax, dword [0x41c70c]
add esp, 0xc
mov ecx, dword [0x41cd6c]
push ecx
push eax
push 0x417b94
push 0x419ea0
call fcn.0040dba4
push 0x419ea0
call fcn.0040df5d
add esp, 0x14
mov edi, 2
cmp edi, ebp
mov eax, edi
je case.0x4053ee.69
mov esi, 1
cmp eax, ebx
jle 0x405c1a
mov ebx, eax
cmp dword [0x424f74], esi
jg 0x405d47
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x404ed3
mov edx, dword [esp + 0x38]
mov eax, dword [0x41cdd8]
push 0
push edx
push eax
call fcn.004121e5
mov ecx, dword [0x41cd20]
mov edx, dword [0x41cdd8]
push 0x2000
push ecx
push edx
mov dword [0x424f78], eax
call fcn.0041227f
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov dword [0x41cdc4], eax
mov ax, word [esp + 0x28]
add esp, 0x18
inc edx
mov dword [0x41cd24], ecx
test ax, ax
mov dword [esp + 0x30], edx
jne 0x404c1e
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
jmp 0x405d86
mov eax, dword [0x41a8d8]
cmp eax, ebp
mov eax, dword [0x41a8cc]
je 0x405cd1
cmp eax, ebp
jne 0x405c09
push 0x417d3c
push 0x419e80
call fcn.0040dba4
add esp, 8
jmp 0x405c09
cmp eax, ebp
jne 0x405c09
cmp edi, ebp
jne 0x405c09
push 0x417d44
push 0x419e80
call fcn.0040dba4
add esp, 8
jmp 0x405c09
push 0x41cde0
push 0x417b70
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov eax, esi
jmp 0x405c14
push 0x4161e4
push 0x416130
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
pop edi
pop esi
pop ebp
mov eax, 0x33
pop ebx
add esp, 0x34
ret
mov edx, dword [0x41c700]
push edx
call fcn.0040df2e
mov eax, dword [esp + 0x24]
add esp, 4
cmp eax, ebp
je 0x405d67
push eax
call fcn.0040df2e
add esp, 4
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x405f9b
push eax
call fcn.0040df2e
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
test edi, edi
je 0x405dc9
mov eax, dword [0x41cef4]
xor esi, esi
test eax, eax
jle 0x405dc0
cmp dword [edi + esi*4], 0
jne 0x405db6
mov eax, dword [0x41603c]
mov ecx, dword [eax + esi*4]
push ecx
push 0x41616c
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov eax, dword [0x41cef4]
inc esi
cmp esi, eax
jl 0x405d95
push edi
call fcn.0040df2e
add esp, 4
test ebp, ebp
je 0x405e0e
mov eax, dword [0x41cf18]
xor esi, esi
test eax, eax
jle 0x405e05
cmp dword [ebp + esi*4], 0
jne 0x405dfb
mov edx, dword [0x416040]
mov eax, dword [edx + esi*4]
push eax
push 0x416190
push 0x419ea0
call fcn.0040dba4
add esp, 0xc
mov eax, dword [0x41cf18]
inc esi
cmp esi, eax
jl 0x405dd8
push ebp
call fcn.0040df2e
add esp, 4
mov ecx, dword [0x41c700]
push ecx
call fcn.0040df2e
push 4
push 0x41cd38
call fcn.00406520
add esp, 0xc
test eax, eax
jne 0x405e32
mov ebx, 0x33
push 4
push 0x41cd28
push 0x41cd38
call fcn.0040dc90
add esp, 0xc
test eax, eax
je 0x405e74
push 0x41609c
push 0x419ea0
call fcn.0040dba4
push 0x4161e4
push 0x419ea0
call fcn.0040dba4
add esp, 0x10
test ebx, ebx
jne 0x405e74
mov ebx, 1
mov esi, dword [esp + 0x18]
mov eax, dword [0x41a8d8]
inc esi
test eax, eax
je 0x405f72
mov eax, dword [0x41a8cc]
cmp eax, 2
jge 0x405f53
test ebx, ebx
je 0x405ebe
cmp ebx, 1
mov eax, 0x417c80
je 0x405ea7
mov eax, 0x41b32c
mov edx, dword [0x41cddc]
push edx
push eax
push 0x41799c
call fcn.0040defd
add esp, 0xc
jmp 0x405f23
test esi, esi
jne 0x405ed7
mov eax, dword [0x41cddc]
push eax
push 0x4179c8
call fcn.0040defd
add esp, 8
jmp 0x405f23
mov eax, dword [0x41a8f0]
test eax, eax
je 0x405efe
cmp word [esp + 0x1c], 0
jne 0x405efe
mov ecx, dword [0x41cddc]
push ecx
push 0x417a50
call fcn.0040defd
add esp, 8
jmp 0x405f23
cmp esi, 1
mov eax, 0x41b330
je 0x405f0d
mov eax, 0x417c8c
mov edx, dword [0x41cddc]
push eax
push esi
push edx
push 0x417a80
call fcn.0040defd
add esp, 0x10
mov ecx, dword [esp + 0x1c]
test cx, cx
jbe 0x405f72
cmp cx, 1
mov eax, 0x41b334
je 0x405f3c
mov eax, 0x417c90
and ecx, 0xffff
push eax
push ecx
push 0x417ab4
call fcn.0040defd
add esp, 0xc
jmp 0x405f72
test eax, eax
jne 0x405f72
test ebx, ebx
jne 0x405f72
test esi, esi
jne 0x405f8a
mov eax, dword [0x41cddc]
push eax
push 0x4179c8
call fcn.0040defd
add esp, 8
test esi, esi
jne 0x405f8a
cmp ebx, 1
jg 0x405f8a
mov ebx, 0xb
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x34
ret
cmp word [esp + 0x1c], 0
jbe 0x405f9b
test ebx, ebx
jne 0x405f9b
mov ebx, 1
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x34
ret