Function at 0x429560
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x56148c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf0
push ebx
push ebp
push esi
push edi
mov ebx, ecx
xor edi, edi
lea ecx, [esp + 0x80]
mov dword [esp + 0x8c], ebx
mov byte [esp + 0x20], 0xfe
mov dword [esp + 0x88], edi
mov dword [esp + 0x1c], edi
call fcn.00531800
lea ecx, [esp + 0xa0]
mov dword [esp + 0x108], edi
call fcn.00537910
mov al, byte [esp + 0x1b]
mov dword [esp + 0x28], edi
mov byte [esp + 0x24], al
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov cl, byte [esp + 0x1b]
mov dword [esp + 0x64], edi
mov byte [esp + 0x60], cl
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dl, byte [esp + 0x1b]
mov dword [esp + 0x4c], edi
mov byte [esp + 0x48], dl
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov al, byte [esp + 0x1b]
mov dword [esp + 0x74], edi
mov byte [esp + 0x70], al
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
push edi
lea ecx, [esp + 0x40]
mov byte [esp + 0x10c], 5
call fcn.00531830
push 2
push 0x59d4cc
lea ecx, [esp + 0x18]
mov byte [esp + 0x110], 6
call fcn.005318a0
push 0xb
push 0x59d4c0
lea ecx, [esp + 0x8c]
mov byte [esp + 0x110], 7
call fcn.005318a0
push 0xb
push 0x59d4b4
lea ecx, [esp + 0x60]
mov byte [esp + 0x110], 8
call fcn.005318a0
push 0xb
push 0x59d4a8
lea ecx, [esp + 0x64]
mov byte [esp + 0x110], 9
call fcn.005318a0
mov ecx, dword [0x5c65d4]
mov eax, dword [0x5c65d8]
push ecx
push eax
push eax
mov byte [esp + 0x114], 0xa
call fcn.0042aec0
add esp, 0xc
mov esi, eax
mov eax, dword [0x5c65d8]
push eax
push esi
mov ecx, 0x5c65d0
call fcn.0042ab90
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
push ecx
push eax
push eax
mov dword [0x5c65d8], esi
call fcn.0042aec0
mov edx, dword [esp + 0x84]
add esp, 0xc
mov esi, eax
lea ecx, [esp + 0x70]
push edx
push esi
call fcn.0042ab90
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x78], esi
push eax
mov eax, dword [esp + 0x54]
push eax
push eax
call fcn.0042aec0
mov ecx, dword [esp + 0x5c]
add esp, 0xc
mov esi, eax
push ecx
push esi
lea ecx, [esp + 0x50]
call fcn.0042ab90
mov edx, dword [esp + 0x110]
mov ecx, ebx
push edx
mov dword [esp + 0x54], esi
call fcn.0041d6e0
push 3
lea ecx, [esp + 0xa4]
call fcn.00537ae0
test al, al
jne 0x429739
mov dword [esp + 0x88], 0xffffffff
jmp 0x42a5f6
mov ecx, dword [ebx + 0x40]
lea edx, [ebx + 0x3c]
cmp ecx, edi
mov dword [esp + 0x44], edx
jne 0x42974b
xor eax, eax
jmp 0x429753
mov eax, dword [edx + 8]
sub eax, ecx
sar eax, 2
movsx eax, ax
cmp eax, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x34], eax
jle 0x429b32
xor eax, eax
jmp 0x42976e
mov edx, dword [esp + 0x44]
push eax
mov ecx, edx
call fcn.0042ab20
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00531810
lea ecx, [esp + 0x84]
call fcn.005319b0
mov eax, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x30]
push eax
push eax
call fcn.00405350
mov ecx, dword [esp + 0x38]
add esp, 0xc
mov esi, eax
push ecx
push esi
lea ecx, [esp + 0x2c]
call fcn.00404c00
lea edx, [esp + 0x80]
lea eax, [esp + 0x90]
push edx
push eax
lea ecx, [esp + 0xa8]
mov dword [esp + 0x34], esi
call fcn.00538230
mov esi, eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x108], 0xb
cmp ecx, esi
je 0x4298ed
mov edx, dword [esi + 4]
cmp edx, edi
jne 0x4297f4
xor eax, eax
jmp 0x4297fc
mov eax, dword [esi + 8]
sub eax, edx
sar eax, 2
mov ebp, dword [esp + 0x28]
cmp ebp, edi
jne 0x429808
xor ecx, ecx
jmp 0x429811
mov ecx, dword [esp + 0x2c]
sub ecx, ebp
sar ecx, 2
cmp eax, ecx
ja 0x429849
mov eax, dword [esi + 8]
push ebp
push eax
push edx
call fcn.00405350
mov edx, dword [esp + 0x38]
add esp, 0xc
lea ecx, [esp + 0x24]
push edx
push eax
call fcn.00404c00
mov ecx, esi
call fcn.0040a310
mov ecx, dword [esp + 0x28]
lea edx, [ecx + eax*4]
mov dword [esp + 0x2c], edx
jmp 0x4298ed
mov ecx, esi
call fcn.0040a310
lea ecx, [esp + 0x24]
mov ebp, eax
call fcn.0042ab70
cmp ebp, eax
ja 0x429896
mov ebp, dword [esi + 4]
lea ecx, [esp + 0x24]
call fcn.0040a310
mov ecx, dword [esp + 0x28]
lea ebp, [ebp + eax*4]
mov eax, dword [esi + 4]
push ecx
push ebp
push eax
call fcn.00405350
mov edx, dword [esp + 0x38]
mov eax, dword [esi + 8]
add esp, 0xc
lea ecx, [esp + 0x24]
push edx
push eax
push ebp
call fcn.004052e0
jmp 0x429832
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
push ecx
lea ecx, [esp + 0x2c]
call fcn.00404c00
mov edx, dword [esp + 0x28]
push edx
call fcn.00556360
add esp, 4
mov ecx, esi
call fcn.0040a310
cmp eax, edi
jge 0x4298c3
xor eax, eax
shl eax, 2
push eax
call fcn.00556a96
add esp, 4
mov dword [esp + 0x28], eax
mov ecx, dword [esi + 8]
mov esi, dword [esi + 4]
push eax
push ecx
push esi
lea ecx, [esp + 0x30]
call fcn.004052e0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
cmp esi, ebp
mov byte [esp + 0x108], 0xa
je 0x42991d
push edi
mov ecx, esi
call fcn.00405470
add esi, 4
cmp esi, ebp
jne 0x429907
mov esi, dword [esp + 0x94]
push esi
call fcn.00556360
mov eax, dword [esp + 0x2c]
add esp, 4
cmp eax, edi
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], edi
je 0x429b18
mov ecx, dword [esp + 0x2c]
sub ecx, eax
sar ecx, 2
cmp ecx, 7
jb 0x429b18
push ecx
lea edx, [esp + 0x84]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.00531810
mov ecx, 0x5c65c0
call fcn.005319b0
push 4
lea ecx, [esp + 0x28]
call fcn.0042ab20
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00531810
mov ecx, 0x5c65c4
call fcn.005319b0
push 6
lea ecx, [esp + 0x28]
call fcn.0042ab20
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00531810
mov ecx, 0x5c65c8
call fcn.005319b0
mov eax, dword [esp + 0x28]
push edi
lea ecx, [eax + 0x10]
call fcn.00531ac0
and eax, 0xff
sub eax, 0x2c
je 0x429a78
sub eax, 0x7e
je 0x4299f7
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push edi
call fcn.00531830
mov ecx, 0x5c65cc
call fcn.005319b0
jmp 0x429af8
push ecx
add ebx, 0x38
mov ecx, esp
mov dword [esp + 0x18], esp
push ebx
call fcn.00531810
mov ecx, 0x5c65cc
call fcn.005319b0
mov ecx, dword [esp + 0x74]
cmp ecx, edi
jne 0x429a1d
xor eax, eax
jmp 0x429a26
mov eax, dword [esp + 0x78]
sub eax, ecx
sar eax, 4
movsx ebp, ax
xor esi, esi
cmp ebp, edi
jle 0x429a58
xor eax, eax
jmp 0x429a37
mov ecx, dword [esp + 0x74]
shl eax, 4
push 0x5c65c4
lea ecx, [eax + ecx + 4]
call fcn.00531a60
test al, al
jne 0x429a58
inc esi
mov eax, esi
and eax, 0xffff
cmp eax, ebp
jl 0x429a33
and esi, 0xffff
cmp esi, ebp
jl 0x429af8
mov ecx, dword [esp + 0x78]
push 0x5c65c0
push 1
push ecx
lea ecx, [esp + 0x7c]
jmp 0x429af3
push ecx
add ebx, 0x38
mov ecx, esp
mov dword [esp + 0x18], esp
push ebx
call fcn.00531810
mov ecx, 0x5c65cc
call fcn.005319b0
mov ecx, dword [esp + 0x4c]
cmp ecx, edi
jne 0x429a9e
xor eax, eax
jmp 0x429aa7
mov eax, dword [esp + 0x50]
sub eax, ecx
sar eax, 4
movsx ebp, ax
xor esi, esi
cmp ebp, edi
jle 0x429ad9
xor eax, eax
jmp 0x429ab8
mov ecx, dword [esp + 0x4c]
shl eax, 4
push 0x5c65c4
lea ecx, [eax + ecx + 4]
call fcn.00531a60
test al, al
jne 0x429ad9
inc esi
mov eax, esi
and eax, 0xffff
cmp eax, ebp
jl 0x429ab4
and esi, 0xffff
cmp esi, ebp
jl 0x429af8
mov edx, dword [esp + 0x50]
push 0x5c65c0
push 1
push edx
lea ecx, [esp + 0x54]
call fcn.0042abc0
mov eax, dword [0x5c65d8]
push 0x5c65c0
push 1
push eax
mov ecx, 0x5c65d0
call fcn.0042abc0
mov ebx, dword [esp + 0x8c]
xor edi, edi
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
inc eax
mov dword [esp + 0x40], eax
and eax, 0xffff
cmp eax, ecx
jl 0x42976a
mov ecx, dword [0x5c65d4]
cmp ecx, edi
je 0x42a5eb
mov eax, dword [0x5c65d8]
sub eax, ecx
sar eax, 4
cmp ax, di
mov dword [esp + 0x44], eax
jle 0x42a5eb
mov ecx, dword [esp + 0x4c]
cmp ecx, edi
jne 0x429b63
xor eax, eax
jmp 0x429b6c
mov eax, dword [esp + 0x50]
sub eax, ecx
sar eax, 4
movsx eax, ax
cmp eax, edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], eax
jle 0x429d90
jmp 0x429b85
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x38]
and ebp, 0xffff
shl ebp, 4
lea ecx, [ecx + ebp + 8]
call fcn.00531b50
mov ecx, dword [esp + 0x1c]
add ecx, eax
cmp cx, 8
mov dword [esp + 0x1c], ecx
jae 0x429d12
mov esi, dword [esp + 0x4c]
push 1
lea ecx, [esp + 0x14]
call fcn.00531ac0
push eax
push 1
lea ecx, [esi + ebp + 4]
call fcn.00531ad0
mov eax, dword [esp + 0x4c]
push 2
lea ecx, [eax + ebp + 4]
call fcn.00531ac0
push eax
lea ecx, [esp + 0x14]
call fcn.00531b30
mov ecx, dword [esp + 0x4c]
push 3
lea ecx, [ecx + ebp + 4]
call fcn.00531ac0
push eax
lea ecx, [esp + 0x14]
call fcn.00531b30
movsx eax, word [esp + 0x44]
test eax, eax
mov dword [esp + 0x34], 0
jle 0x429d76
xor esi, esi
mov eax, dword [0x5c65d4]
push 0
shl esi, 4
lea ecx, [eax + esi + 4]
call fcn.00531ac0
cmp al, 0x2c
jne 0x429cf4
mov edx, dword [esp + 0x4c]
mov edi, dword [0x5c65d4]
push 2
lea ecx, [edx + ebp + 4]
call fcn.00531ac0
push 2
lea ecx, [edi + esi + 4]
mov bl, al
call fcn.00531ac0
cmp al, bl
jne 0x429cf4
mov eax, dword [esp + 0x4c]
mov edi, dword [0x5c65d4]
push 3
lea ecx, [eax + ebp + 4]
call fcn.00531ac0
push 3
lea ecx, [edi + esi + 4]
mov bl, al
call fcn.00531ac0
cmp al, bl
jne 0x429cf4
mov ecx, dword [esp + 0x4c]
mov edi, dword [0x5c65d4]
push 1
lea ecx, [ecx + ebp + 4]
call fcn.00531ac0
push eax
push 1
lea ecx, [edi + esi + 4]
call fcn.00531ad0
mov eax, dword [0x5c65d4]
lea ecx, [eax + esi + 8]
call fcn.00531b50
movsx ebx, ax
xor edi, edi
test ebx, ebx
jle 0x429cf4
mov cl, byte [esp + 0x1c]
sub cl, al
mov byte [esp + 0x1b], cl
mov eax, dword [0x5c65d4]
push edi
mov dword [esp + 0x18], eax
lea ecx, [eax + esi + 8]
call fcn.00531ac0
mov cl, byte [esp + 0x1b]
mov edx, dword [esp + 0x14]
add al, cl
push eax
push edi
lea ecx, [edx + esi + 8]
call fcn.00531ad0
inc edi
mov eax, edi
and eax, 0xffff
cmp eax, ebx
jl 0x429cc0
mov esi, dword [esp + 0x34]
movsx eax, word [esp + 0x44]
inc esi
mov dword [esp + 0x34], esi
and esi, 0xffff
cmp esi, eax
jl 0x429c13
jmp 0x429d76
mov edx, dword [esp + 0x68]
lea ecx, [esp + 0x10]
push ecx
push 1
push edx
lea ecx, [esp + 0x6c]
call fcn.00404e90
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0
call fcn.00531830
lea ecx, [esp + 0x14]
call fcn.005319b0
mov bl, byte [esp + 0x20]
push 0x2c
dec bl
lea ecx, [esp + 0x14]
mov byte [esp + 0x24], bl
call fcn.00531b30
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x10]
push eax
call fcn.00531b30
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], 0
add eax, 0xffff
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
inc eax
mov dword [esp + 0x38], eax
and eax, 0xffff
cmp eax, ecx
jl 0x429b81
lea ecx, [esp + 0x10]
call fcn.00531b50
cmp ax, 2
jle 0x429db4
mov edx, dword [esp + 0x68]
lea ecx, [esp + 0x10]
push ecx
push 1
push edx
lea ecx, [esp + 0x6c]
call fcn.00404e90
mov ecx, dword [esp + 0x64]
xor edx, edx
cmp ecx, edx
jne 0x429dc2
xor eax, eax
jmp 0x429dcb
mov eax, dword [esp + 0x68]
sub eax, ecx
sar eax, 2
mov esi, dword [esp + 0x114]
mov dword [esp + 0x38], edx
movsx eax, ax
cmp eax, edx
mov dword [esp + 0x40], eax
jle 0x42a009
mov dword [esp + 0x1c], edx
jmp 0x429def
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x1c]
lea ecx, [ecx + ebx*4]
call fcn.00531b50
mov ebp, eax
cmp bp, 6
jle 0x429f80
sar eax, 8
and al, 0xf
lea ecx, [esp + 0x58]
add al, 0x10
push eax
push 1
call fcn.00531ad0
push ebp
push 2
lea ecx, [esp + 0x60]
call fcn.00531ad0
mov edi, 3
mov edx, dword [esp + 0x64]
lea ecx, [edi - 3]
push ecx
lea ecx, [edx + ebx*4]
call fcn.00531ac0
push eax
push edi
lea ecx, [esp + 0x60]
call fcn.00531ad0
inc edi
cmp di, 9
jb 0x429e2b
mov eax, dword [esi + 8]
lea ecx, [esp + 0x58]
push ecx
push 1
push eax
mov ecx, esi
call fcn.00404e90
push ecx
lea edx, [esp + 0x60]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.00531810
lea ecx, [esp + 0x14]
call fcn.005319b0
movsx eax, bp
mov ebx, 6
mov edi, 2
cmp eax, ebx
mov byte [esp + 0x20], 0x21
mov dword [esp + 0x44], eax
jle 0x429f1f
mov ebp, ebx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x1c]
push ebx
lea ecx, [eax + ecx*4]
call fcn.00531ac0
push eax
push edi
lea ecx, [esp + 0x18]
call fcn.00531ad0
lea eax, [ebp - 5]
mov ecx, 7
cdq
idiv ecx
inc edi
test edx, edx
jne 0x429f0a
mov eax, dword [esi + 8]
lea edx, [esp + 0x10]
push edx
push 1
push eax
mov ecx, esi
call fcn.00404e90
push ecx
lea eax, [esp + 0x60]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00531810
lea ecx, [esp + 0x14]
call fcn.005319b0
inc byte [esp + 0x20]
mov ecx, dword [esp + 0x20]
push ecx
push 1
lea ecx, [esp + 0x18]
call fcn.00531ad0
mov edi, 2
mov eax, dword [esp + 0x44]
inc ebx
mov ebp, ebx
and ebp, 0xffff
cmp ebp, eax
jl 0x429e99
mov eax, dword [esp + 0x44]
and ebx, 0xffff
cmp ebx, eax
jl 0x429f4e
lea eax, [ebx - 6]
mov ecx, 7
cdq
idiv ecx
test edx, edx
je 0x429f4e
mov eax, dword [esi + 8]
lea edx, [esp + 0x10]
push edx
push 1
push eax
mov ecx, esi
call fcn.00404e90
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x429f69
xor eax, eax
push 1
push 0xa
lea ecx, [ecx + eax*4 - 4]
call fcn.00531ad0
jmp 0x429feb
mov eax, dword [esi + 8]
push 1
sub eax, ecx
push 0xa
sar eax, 2
lea ecx, [ecx + eax*4 - 4]
call fcn.00531ad0
jmp 0x429feb
push ecx
lea eax, [esp + 0x88]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00531810
lea ecx, [esp + 0x14]
call fcn.005319b0
push ebp
push 1
lea ecx, [esp + 0x18]
call fcn.00531ad0
movsx ebp, bp
xor edi, edi
test ebp, ebp
jle 0x429fd9
mov ecx, dword [esp + 0x64]
push edi
lea ecx, [ecx + ebx*4]
call fcn.00531ac0
lea edx, [edi + 2]
push eax
push edx
lea ecx, [esp + 0x18]
call fcn.00531ad0
inc edi
mov eax, edi
and eax, 0xffff
cmp eax, ebp
jl 0x429fb2
mov eax, dword [esi + 8]
lea ecx, [esp + 0x10]
push ecx
push 1
push eax
mov ecx, esi
call fcn.00404e90
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
inc eax
mov dword [esp + 0x38], eax
and eax, 0xffff
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x429deb
mov edx, dword [esp + 0x8c]
lea ebx, [edx + 0x38]
mov ecx, ebx
call fcn.00531b50
movsx ebp, ax
xor edi, edi
test ebp, ebp
jle 0x42a041
push edi
mov ecx, ebx
call fcn.00531ac0
push eax
lea ecx, [esp + 0x40]
call fcn.00531b30
inc edi
mov eax, edi
and eax, 0xffff
cmp eax, ebp
jl 0x42a023
mov ecx, dword [esp + 0x64]
test ecx, ecx
jne 0x42a04d
xor eax, eax
jmp 0x42a056
mov eax, dword [esp + 0x68]
sub eax, ecx
sar eax, 2
movsx ebx, ax
xor edi, edi
test ebx, ebx
jle 0x42a087
xor eax, eax
jmp 0x42a067
mov ecx, dword [esp + 0x64]
push 1
lea ecx, [ecx + eax*4]
call fcn.00531ac0
push eax
lea ecx, [esp + 0x40]
call fcn.00531b30
inc edi
mov eax, edi
and eax, 0xffff
cmp eax, ebx
jl 0x42a063
mov ecx, dword [esp + 0x74]
test ecx, ecx
jne 0x42a093
xor eax, eax
jmp 0x42a09c
mov eax, dword [esp + 0x78]
sub eax, ecx
sar eax, 4
movsx ebx, ax
xor edi, edi
test ebx, ebx
jle 0x42a0d1
xor eax, eax
jmp 0x42a0ad
mov ecx, dword [esp + 0x74]
shl eax, 4
push 1
lea ecx, [eax + ecx + 4]
call fcn.00531ac0
push eax
lea ecx, [esp + 0x40]
call fcn.00531b30
inc edi
mov eax, edi
and eax, 0xffff
cmp eax, ebx
jl 0x42a0a9
lea ecx, [esp + 0x3c]
call fcn.00531b50
mov ebx, eax
cmp bx, 2
jle 0x42a5f6
push ecx
cmp bx, 7
mov ecx, esp
jle 0x42a452
lea edx, [esp + 0x5c]
mov dword [esp + 0x18], esp
push edx
call fcn.00531810
lea ecx, [esp + 0x14]
call fcn.005319b0
mov eax, ebx
lea ecx, [esp + 0x10]
sar eax, 8
and al, 0xf
add al, 0x10
push eax
push 1
call fcn.00531ad0
push ebx
push 2
lea ecx, [esp + 0x18]
call fcn.00531ad0
xor edi, edi
push edi
lea ecx, [esp + 0x40]
call fcn.00531ac0
lea ecx, [edi + 3]
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.00531ad0
inc edi
cmp di, 6
jb 0x42a12d
mov eax, dword [esi + 8]
lea edx, [esp + 0x10]
push edx
push 1
push eax
mov ecx, esi
call fcn.00404e90
push ecx
lea eax, [esp + 0x60]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.00531810
lea ecx, [esp + 0x14]
call fcn.005319b0
push 0x21
push 1
lea ecx, [esp + 0x18]
mov ebp, 2
mov byte [esp + 0x28], 0x21
call fcn.00531ad0
movsx ebx, bx
mov dword [esp + 0x34], edi
and edi, 0xffff
cmp edi, ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], ebx
jge 0x42a366
mov ecx, dword [esp + 0x34]
push ecx
lea ecx, [esp + 0x40]
call fcn.00531ac0
push eax
push ebp
lea ecx, [esp + 0x18]
call fcn.00531ad0
mov edx, dword [esp + 0x1c]
mov eax, edi
sub eax, edx
inc ebp
inc eax
mov ecx, 7
cdq
idiv ecx
test edx, edx
jne 0x42a34f
mov edi, dword [esi + 8]
mov edx, dword [esi + 0xc]
sub edx, edi
sar edx, 2
cmp edx, 1
jae 0x42a299
mov ecx, esi
call fcn.0040a310
cmp eax, 1
jbe 0x42a20a
mov ecx, esi
call fcn.0040a310
mov ebx, eax
jmp 0x42a20f
mov ebx, 1
mov ecx, esi
call fcn.0040a310
add eax, ebx
mov dword [esp + 0x14], eax
jns 0x42a220
xor eax, eax
shl eax, 2
push eax
call fcn.00556a96
mov ecx, dword [esi + 4]
add esp, 4
mov ebp, eax
push ebp
push edi
push ecx
mov ecx, esi
call fcn.004052e0
lea edx, [esp + 0x10]
mov ebx, eax
push edx
push 1
push ebx
mov ecx, esi
call fcn.00405320
mov eax, dword [esi + 8]
add ebx, 4
push ebx
push eax
push edi
mov ecx, esi
call fcn.004052e0
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push ecx
push edx
mov ecx, esi
call fcn.00404c00
mov eax, dword [esi + 4]
push eax
call fcn.00556360
mov eax, dword [esp + 0x18]
add esp, 4
lea ecx, [ebp + eax*4]
mov dword [esi + 0xc], ecx
mov ecx, esi
call fcn.0040a310
mov ebx, dword [esp + 0x40]
lea edx, [ebp + eax*4 + 4]
mov dword [esi + 8], edx
mov dword [esi + 4], ebp
jmp 0x42a316
mov eax, edi
sub eax, edi
sar eax, 2
cmp eax, 1
jae 0x42a2e5
lea ecx, [edi + 4]
push ecx
push edi
push edi
mov ecx, esi
call fcn.004052e0
mov eax, dword [esi + 8]
lea edx, [esp + 0x10]
mov ecx, eax
push edx
sub ecx, edi
mov edx, 1
sar ecx, 2
sub edx, ecx
mov ecx, esi
push edx
push eax
call fcn.00405320
mov ecx, dword [esi + 8]
lea eax, [esp + 0x10]
push eax
push ecx
push edi
call fcn.00405390
add esp, 0xc
jmp 0x42a312
push edi
lea edx, [edi - 4]
push edi
push edx
mov ecx, esi
call fcn.004052e0
mov eax, dword [esi + 8]
push eax
add eax, 0xfffffffc
push eax
push edi
call fcn.004053d0
lea eax, [esp + 0x1c]
lea ecx, [edi + 4]
push eax
push ecx
push edi
call fcn.00405390
add esp, 0x18
add dword [esi + 8], 4
push ecx
lea edx, [esp + 0x60]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.00531810
lea ecx, [esp + 0x14]
call fcn.005319b0
mov dl, byte [esp + 0x20]
lea ecx, [esp + 0x10]
inc dl
mov byte [esp + 0x20], dl
mov eax, dword [esp + 0x20]
push eax
push 1
call fcn.00531ad0
mov ebp, 2
mov edi, dword [esp + 0x34]
inc edi
mov dword [esp + 0x34], edi
and edi, 0xffff
cmp edi, ebx
jl 0x42a1ac
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
and eax, 0xffff
sub eax, ecx
mov ecx, 7
cdq
idiv ecx
test edx, edx
je 0x42a5f6
mov edi, dword [esi + 8]
mov edx, dword [esi + 0xc]
sub edx, edi
sar edx, 2
cmp edx, 1
jae 0x42a43d
mov ecx, esi
call fcn.0040a310
cmp eax, 1
jbe 0x42a3b0
mov ecx, esi
call fcn.0040a310
mov ebx, eax
jmp 0x42a3b5
mov ebx, 1
mov ecx, esi
call fcn.0040a310
add eax, ebx
mov dword [esp + 0x14], eax
jns 0x42a3c6
xor eax, eax
shl eax, 2
push eax
call fcn.00556a96
mov ecx, dword [esi + 4]
add esp, 4
mov ebx, eax
push ebx
push edi
push ecx
mov ecx, esi
call fcn.004052e0
lea edx, [esp + 0x10]
mov ebp, eax
push edx
push 1
push ebp
mov ecx, esi
call fcn.00405320
mov eax, dword [esi + 8]
add ebp, 4
push ebp
push eax
push edi
mov ecx, esi
call fcn.004052e0
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push ecx
push edx
mov ecx, esi
call fcn.00404c00
mov eax, dword [esi + 4]
push eax
call fcn.00556360
mov eax, dword [esp + 0x18]
add esp, 4
lea ecx, [ebx + eax*4]
mov dword [esi + 0xc], ecx
mov ecx, esi
call fcn.0040a310
lea edx, [ebx + eax*4 + 4]
mov dword [esi + 4], ebx
mov dword [esi + 8], edx
jmp 0x42a5f6
mov eax, edi
sub eax, edi
sar eax, 2
cmp eax, 1
jae 0x42a5b3
jmp 0x42a56a
lea edx, [esp + 0x88]
mov dword [esp + 0x18], esp
push edx
call fcn.00531810
lea ecx, [esp + 0x14]
call fcn.005319b0
push ebx
push 1
lea ecx, [esp + 0x18]
call fcn.00531ad0
movsx ebx, bx
xor edi, edi
test ebx, ebx
jle 0x42a4a6
push edi
lea ecx, [esp + 0x40]
call fcn.00531ac0
push eax
lea eax, [edi + 2]
push eax
lea ecx, [esp + 0x18]
call fcn.00531ad0
inc edi
mov ecx, edi
and ecx, 0xffff
cmp ecx, ebx
jl 0x42a481
mov edi, dword [esi + 8]
mov edx, dword [esi + 0xc]
sub edx, edi
sar edx, 2
cmp edx, 1
jae 0x42a55e
mov ecx, esi
call fcn.0040a310
cmp eax, 1
jbe 0x42a4d1
mov ecx, esi
call fcn.0040a310
mov ebx, eax
jmp 0x42a4d6
mov ebx, 1
mov ecx, esi
call fcn.0040a310
add eax, ebx
mov dword [esp + 0x14], eax
jns 0x42a4e7
xor eax, eax
shl eax, 2
push eax
call fcn.00556a96
mov ecx, dword [esi + 4]
add esp, 4
mov ebx, eax
push ebx
push edi
push ecx
mov ecx, esi
call fcn.004052e0
lea edx, [esp + 0x10]
mov ebp, eax
push edx
push 1
push ebp
mov ecx, esi
call fcn.00405320
mov eax, dword [esi + 8]
add ebp, 4
push ebp
push eax
push edi
mov ecx, esi
call fcn.004052e0
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push ecx
push edx
mov ecx, esi
call fcn.00404c00
mov eax, dword [esi + 4]
push eax
call fcn.00556360
mov eax, dword [esp + 0x18]
add esp, 4
lea ecx, [ebx + eax*4]
mov dword [esi + 0xc], ecx
mov ecx, esi
call fcn.0040a310
lea edx, [ebx + eax*4 + 4]
mov dword [esi + 4], ebx
mov dword [esi + 8], edx
jmp 0x42a5f6
mov eax, edi
sub eax, edi
sar eax, 2
cmp eax, 1
jae 0x42a5b3
lea ecx, [edi + 4]
push ecx
push edi
push edi
mov ecx, esi
call fcn.004052e0
mov eax, dword [esi + 8]
lea edx, [esp + 0x10]
mov ecx, eax
push edx
sub ecx, edi
mov edx, 1
sar ecx, 2
sub edx, ecx
mov ecx, esi
push edx
push eax
call fcn.00405320
mov ecx, dword [esi + 8]
lea eax, [esp + 0x10]
push eax
push ecx
push edi
call fcn.00405390
mov eax, dword [esi + 8]
add esp, 0xc
add eax, 4
mov dword [esi + 8], eax
jmp 0x42a5f6
push edi
lea edx, [edi - 4]
push edi
push edx
mov ecx, esi
call fcn.004052e0
mov eax, dword [esi + 8]
push eax
add eax, 0xfffffffc
push eax
push edi
call fcn.004053d0
lea eax, [esp + 0x1c]
lea ecx, [edi + 4]
push eax
push ecx
push edi
call fcn.00405390
mov eax, dword [esi + 8]
add esp, 0x18
add eax, 4
mov dword [esi + 8], eax
jmp 0x42a5f6
mov dword [esp + 0x88], 0xfffffffd
lea ecx, [esp + 0xa0]
xor ebp, ebp
call fcn.00537f70
lea ecx, [esp + 0x5c]
mov byte [esp + 0x108], 9
call fcn.00531940
lea ecx, [esp + 0x58]
mov byte [esp + 0x108], 8
call fcn.00531940
lea ecx, [esp + 0x84]
mov byte [esp + 0x108], 7
call fcn.00531940
lea ecx, [esp + 0x10]
mov byte [esp + 0x108], 6
call fcn.00531940
lea ecx, [esp + 0x3c]
mov byte [esp + 0x108], 5
call fcn.00531940
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x74]
cmp esi, edi
mov dword [esp + 0x14], esi
je 0x42a6bb
mov bl, 0xc
lea ecx, [esi + 0xc]
mov byte [esp + 0x108], 0xe
call fcn.00531940
lea ecx, [esi + 8]
mov byte [esp + 0x108], 0xd
call fcn.00531940
lea ecx, [esi + 4]
mov byte [esp + 0x108], bl
call fcn.00531940
mov ecx, esi
mov byte [esp + 0x108], 4
call fcn.00531940
add esi, 0x10
cmp esi, edi
mov dword [esp + 0x14], esi
jne 0x42a66e
mov esi, dword [esp + 0x74]
push esi
call fcn.00556360
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
add esp, 4
cmp esi, edi
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x14], esi
je 0x42a72f
mov bl, 0x11
lea ecx, [esi + 0xc]
mov byte [esp + 0x108], bl
call fcn.00531940
lea ecx, [esi + 8]
mov byte [esp + 0x108], 0x10
call fcn.00531940
lea ecx, [esi + 4]
mov byte [esp + 0x108], 0xf
call fcn.00531940
mov ecx, esi
mov byte [esp + 0x108], 3
call fcn.00531940
add esi, 0x10
cmp esi, edi
mov dword [esp + 0x14], esi
jne 0x42a6e2
mov esi, dword [esp + 0x4c]
push esi
call fcn.00556360
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
add esp, 4
cmp esi, eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov byte [esp + 0x108], 2
mov edi, eax
je 0x42a76c
mov ecx, esi
call fcn.00531940
add esi, 4
cmp esi, edi
jne 0x42a75a
mov esi, dword [esp + 0x64]
push esi
call fcn.00556360
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
add esp, 4
cmp esi, eax
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
mov byte [esp + 0x108], 1
mov edi, eax
je 0x42a7a9
mov ecx, esi
call fcn.00531940
add esi, 4
cmp esi, edi
jne 0x42a797
mov esi, dword [esp + 0x28]
push esi
call fcn.00556360
add esp, 4
lea ecx, [esp + 0xa0]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov byte [esp + 0x108], 0
call fcn.00537a90
lea ecx, [esp + 0x80]
mov dword [esp + 0x108], 0xffffffff
call fcn.00531940
mov ecx, dword [esp + 0x100]
mov ax, word [esp + 0x88]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xfc
ret 8