Function at 0x40685c
Capabilities:
Terminate process

Disassembly:
sub esp, 0xbf0
push ebx
mov ebx, dword [0x51c3a4]
and ebx, 0x47c
push ebp
neg ebx
push esi
sbb bl, bl
push edi
mov edi, eax
mov cl, byte [edi]
and bl, 0xc2
add bl, 0x60
test cl, cl
lea ebp, [esp + 0x600]
mov dword [esp + 0x14], ebp
mov esi, edi
mov byte [esp + 0x38], bl
lea eax, [esp + 0x39]
je 0x4068ae
lea ecx, [ecx]
cmp cl, bl
jne 0x4068a3
mov byte [eax], bl
inc eax
mov byte [eax], cl
mov cl, byte [esi + 1]
inc eax
inc esi
test cl, cl
jne 0x40689c
mov byte [eax], bl
mov byte [eax + 1], 0
mov al, byte [0x51c354]
test al, al
mov esi, edi
jne 0x4068d0
mov ecx, edi
call fcn.0040511c
test al, al
jne 0x4068d0
mov dword [esp + 0x20], edi
jmp 0x4068fe
mov cl, byte [edi]
test cl, cl
mov byte [esp + 0x7c], bl
lea eax, [esp + 0x7d]
je 0x4068f0
cmp cl, bl
jne 0x4068e5
mov byte [eax], bl
inc eax
mov byte [eax], cl
mov cl, byte [esi + 1]
inc eax
inc esi
test cl, cl
jne 0x4068de
mov byte [eax], bl
mov byte [eax + 1], 0
lea eax, [esp + 0x7c]
mov dword [esp + 0x20], eax
mov eax, edi
call fcn.004055dc
test eax, eax
je 0x406936
mov cl, byte [0x51c34c]
test cl, cl
je 0x407717
push eax
push edi
push 0x436d10
push 0x51ae68
call fcn.004291d4
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbf0
ret
mov al, byte [0x51c34c]
test al, al
je 0x406951
push 0x436cf4
push 0x51ae68
call fcn.004291d4
add esp, 8
mov eax, dword [0x51c37c]
test eax, eax
je 0x406b82
push 0
push eax
lea ecx, [esp + 0x108]
push ecx
call fcn.0040d32c
lea edx, [esp + 0x10c]
push 0
push edx
mov eax, edx
push eax
call fcn.0040d1dc
push 4
push 0x436cec
lea ecx, [esp + 0x120]
push ecx
lea edx, [esp + 0x324]
push edi
push edx
call fcn.0040cfac
lea eax, [esp + 0x32c]
push 0
push eax
call fcn.0040cf0c
lea ecx, [esp + 0x334]
push ecx
call fcn.0040cedc
lea edx, [esp + 0x338]
push edx
push 0x436cb8
lea eax, [esp + 0x640]
push 0x600
push eax
call fcn.004145fc
lea ecx, [esp + 0x648]
add esp, 0x48
push ecx
call fcn.0041473c
mov ecx, dword [0x51c380]
add esp, 4
test ecx, ecx
jne 0x406a13
mov ecx, dword [0x51c388]
test ecx, ecx
jne 0x406a13
mov ecx, dword [0x51c38c]
test ecx, ecx
jne 0x406a13
mov ecx, dword [0x51c390]
test ecx, ecx
je 0x406a21
push 0x436cb0
push eax
call fcn.0041464c
add esp, 8
mov esi, dword [0x51c380]
mov ecx, 0x436ca0
call fcn.004067ec
mov esi, dword [0x51c388]
mov ecx, 0x436c90
call fcn.004067ec
mov esi, dword [0x51c38c]
mov ecx, 0x436c78
call fcn.004067ec
mov esi, dword [0x51c390]
mov ecx, 0x436c6c
call fcn.004067ec
mov esi, dword [0x51c384]
mov ecx, fcn.00436c54
call fcn.004067ec
lea edx, [esp + 0x38]
push edx
mov esi, eax
push 0x436c48
lea eax, [esp + 0x508]
push 0x100
push eax
mov byte [esi], 0
call fcn.004145fc
lea ecx, [esp + 0x510]
push ecx
push esi
call fcn.0041464c
mov edx, dword [0x51c394]
mov ecx, dword [0x51c398]
add esp, 0x18
test edx, edx
jne 0x406ad2
test ecx, ecx
je 0x406b4b
xor edi, edi
test ecx, ecx
je 0x406aea
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x406ac4
sub ecx, esi
add ecx, 0xa
jmp 0x406aec
lea esi, [edx + 1]
lea esp, [esp]
mov bl, byte [edx]
inc edx
test bl, bl
jne 0x406adc
sub edx, esi
lea edi, [edx + 7]
jmp 0x406abd
xor ecx, ecx
lea edx, [esp + 0x600]
sub ecx, edx
add ecx, edi
lea eax, [ecx + eax + 1]
call fcn.0040524c
mov esi, eax
lea eax, [esp + 0x600]
push eax
push esi
call fcn.0041464c
mov ecx, dword [0x51c394]
add esp, 8
test ecx, ecx
je 0x406b2e
push 0
push ecx
push 0x436c40
push eax
call fcn.0041461c
add esp, 0x10
mov ecx, dword [0x51c398]
test ecx, ecx
je 0x406b4f
push 0
push ecx
push 0x436c34
push eax
call fcn.0041461c
add esp, 0x10
jmp 0x406b4f
mov esi, dword [esp + 0x14]
mov ecx, dword [case.0x6502ec.0]
sub eax, esi
push eax
push esi
push ecx
call fcn.004110ac
test eax, eax
je 0x407717
mov esi, dword [case.0x6502ec.0]
mov eax, 0x436c0c
call fcn.004061fc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbf0
ret
mov al, byte [0x51c35b]
test al, al
jne 0x406bb8
mov al, byte [case.0x7aa0c9.35]
test al, al
je 0x406bb8
mov eax, dword [0x51d678]
lea edx, [esp + 0x38]
push edx
push 0x436be4
push eax
call fcn.004291d4
mov ecx, dword [0x51d678]
push ecx
call fcn.004058ac
add esp, 0x10
lea edx, [esp + 0x38]
push edx
push 0x436bb8
lea eax, [esp + 0x608]
push 0x600
push eax
call fcn.004145fc
mov edx, dword [0x51c394]
mov ecx, dword [0x51c398]
add esp, 0x10
test edx, edx
jne 0x406bef
test ecx, ecx
je 0x406d00
lea eax, [esp + 0x600]
lea esi, [eax + 1]
lea ecx, [ecx]
mov bl, byte [eax]
inc eax
test bl, bl
jne 0x406bfc
sub eax, esi
test edx, edx
je 0x406c1a
lea esi, [edx + 1]
mov bl, byte [edx]
inc edx
test bl, bl
jne 0x406c0c
sub edx, esi
lea esi, [edx + 7]
jmp 0x406c1c
xor esi, esi
test ecx, ecx
je 0x406c31
lea ebx, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x406c23
sub ecx, ebx
add ecx, 0xa
jmp 0x406c33
xor ecx, ecx
add ecx, esi
lea eax, [ecx + eax + 1]
call fcn.0040524c
lea ecx, [esp + 0x600]
mov ebp, eax
push ecx
push ebp
mov dword [esp + 0x1c], ebp
call fcn.0041464c
mov esi, eax
mov eax, dword [0x51c394]
add esp, 8
test eax, eax
je 0x406cac
mov cl, byte [0x51c35b]
test cl, cl
jne 0x406c99
mov cl, byte [case.0x7aa0c9.35]
test cl, cl
je 0x406c99
mov edx, dword [0x51d678]
push eax
push 0x436ba8
push edx
call fcn.004291d4
mov eax, dword [0x51d678]
push eax
call fcn.004058ac
mov eax, dword [0x51c394]
add esp, 0x10
push 0
push eax
push 0x436c40
push esi
call fcn.0041461c
add esp, 0x10
mov esi, eax
mov eax, dword [0x51c398]
test eax, eax
je 0x406d00
mov cl, byte [0x51c35b]
test cl, cl
jne 0x406cef
mov cl, byte [case.0x7aa0c9.35]
test cl, cl
je 0x406cef
mov ecx, dword [0x51d678]
push eax
push 0x436b94
push ecx
call fcn.004291d4
mov edx, dword [0x51d678]
push edx
call fcn.004058ac
mov eax, dword [0x51c398]
add esp, 0x10
push 0
push eax
push 0x436c34
push esi
call fcn.0041461c
add esp, 0x10
mov al, byte [0x51c35b]
test al, al
jne 0x406d31
mov al, byte [0x51c360]
test al, al
jne 0x406d31
mov eax, dword [0x51d678]
push eax
push 0x436570
call fcn.004294cd
mov ecx, dword [0x51d678]
push ecx
call fcn.004058ac
add esp, 0xc
mov esi, dword [case.0x6502ec.0]
push ebp
push esi
call fcn.0041330c
test eax, eax
je 0x406d79
push esi
call fcn.004115dc
push eax
push esi
call fcn.004115ec
mov edx, dword [0x51c3d4]
push eax
push ebp
push edx
push 0
push 0x435ff0
push 0
call fcn.0040c8ac
mov esi, dword [case.0x6502ec.0]
add esp, 0x1c
mov eax, 0x436b70
call fcn.004061fc
mov al, byte [fcn.00442050]
test al, al
je 0x406d8f
mov eax, dword [case.0x6502ec.0]
push eax
call fcn.00413e1c
jmp 0x406d9b
mov ecx, dword [case.0x6502ec.0]
push ecx
call fcn.004110ec
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x406db5
mov esi, dword [case.0x6502ec.0]
mov eax, 0x436b70
call fcn.004061fc
mov al, byte [0x51c34c]
test al, al
je 0x406dd0
push 0x436b58
push 0x51ae68
call fcn.004291d4
add esp, 8
push ebx
call fcn.004115cc
cmp eax, dword [esp + 0xc04]
je 0x406e01
mov eax, dword [0x51c3d4]
lea edx, [esp + 0x38]
push edx
push eax
push 0x436b20
push 0x51ae68
call fcn.004291d4
add esp, 0x10
jmp 0x407635
mov al, byte [0x442056]
test al, al
je 0x406e2e
mov ecx, dword [esp + 0x20]
mov edx, dword [0x51d678]
push ecx
push 0x436af4
push edx
call fcn.004291d4
mov eax, dword [0x51d678]
push eax
call fcn.004058ac
add esp, 0x10
mov al, byte [fcn.00442054]
test al, al
je 0x406e5b
mov ecx, dword [esp + 0x20]
mov edx, dword [0x51d678]
push ecx
push 0x436adc
push edx
call fcn.004291d4
mov eax, dword [0x51d678]
push eax
call fcn.004058ac
add esp, 0x10
mov edx, dword [0x51c33c]
mov ecx, dword [0x51c348]
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], eax
mov al, byte [0x51c35b]
add edx, 4
test al, al
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], edx
je 0x406ea2
mov ecx, dword [0x51d678]
push 0x436570
push 0x436ac8
mov eax, 0x436ac4
call fcn.0040659c
add esp, 8
mov al, byte [0x51c35a]
test al, al
je 0x406eca
mov eax, dword [0x51d678]
push 0x436ab0
push eax
call fcn.004291d4
mov ecx, dword [0x51d678]
push ecx
call fcn.004058ac
add esp, 0xc
push ebx
call fcn.00412b7c
test eax, eax
mov dword [esp + 0x18], eax
je 0x40754f
mov esi, dword [esp + 0x10]
push esi
call fcn.0041344c
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov al, byte [0x442051]
inc ecx
test al, al
mov dword [esp + 0x24], ecx
jne 0x406f26
mov al, byte [0x51c35b]
test al, al
jne 0x406f26
mov edx, dword [0x51d678]
mov eax, dword [0x51c338]
push edx
push eax
call fcn.004294cd
mov ecx, dword [0x51d678]
push ecx
call fcn.004058ac
add esp, 0xc
push 0
push esi
call fcn.004134cc
mov al, byte [0x51c35b]
test al, al
je 0x406f56
mov edx, dword [0x51d678]
push edx
push 0x436aa8
call fcn.004294cd
mov eax, dword [0x51d678]
push eax
call fcn.004058ac
add esp, 0xc
mov ecx, dword [esp + 0x10]
push ecx
xor ebp, ebp
call fcn.004115cc
test eax, eax
jbe 0x407408
mov edi, edi
mov edx, dword [esp + 0x10]
push edx
call fcn.0041341c
mov ebx, eax
test ebx, ebx
je 0x407565
mov al, byte [0x51c361]
test al, al
je 0x406fc3
cmp dword [ebx + 0x48], 0x3f
jne 0x406fc3
mov eax, dword [ebx + 0x4c]
cmp eax, 0xfe
je 0x406fbc
cmp eax, 0xfd
je 0x406fbc
cmp eax, 0xfc
je 0x406fbc
cmp eax, 0xfb
je 0x406fbc
cmp eax, 0xfa
je 0x406fbc
cmp eax, 0xf9
jne 0x406fc3
mov edi, 1
jmp 0x406fc5
xor edi, edi
mov al, byte [0x442051]
test al, al
mov dword [esp + 0x30], edi
je 0x4071d5
test ebp, ebp
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + ebp*4]
jne 0x406ff2
push 0x436aa4
push 0x51be60
call fcn.0040cd2c
jmp 0x407001
push 0x436208
push 0x51be60
call fcn.0040ceac
mov ecx, dword [esp + 0x20]
mov edi, dword [ecx + ebp*4]
add esp, 8
test edi, edi
je 0x40719b
test esi, esi
je 0x407184
mov eax, dword [ebx + 0x40]
test ah, ah
js 0x4070fe
lea edx, [esi + esi + 2]
push edx
push 0x51be60
call fcn.0040cdbc
add esp, 8
test al, al
jne 0x4071b5
mov al, byte [0x51c361]
test al, al
je 0x40709c
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40709c
push 0x436aa0
push 0x51be60
call fcn.0040ceac
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + ebp*4]
mov edx, dword [0x51be60]
mov eax, dword [0x51be64]
add esp, 8
push esi
push ecx
add eax, edx
push eax
call fcn.004136dc
mov ecx, dword [0x51be64]
mov edx, dword [0x51be60]
add ecx, eax
mov dword [0x51be64], ecx
mov byte [ecx + edx], 0
jmp 0x4073f5
push 0x436a9c
push 0x51be60
call fcn.0040ceac
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + ebp*4]
mov edx, dword [0x51be60]
mov eax, dword [0x51be64]
add esp, 8
push esi
push ecx
add eax, edx
push eax
push 0x51bf78
call fcn.0041372c
mov ecx, dword [0x51be64]
mov edx, dword [0x51be60]
add ecx, eax
push 0x436a9c
mov dword [0x51be64], ecx
push 0x51be60
mov byte [ecx + edx], 0
call fcn.0040ceac
add esp, 8
jmp 0x4073f5
mov al, byte [edi]
mov ecx, dword [0x44205c]
mov ecx, dword [ecx + 0x20]
movzx esi, al
mov dl, 3
test byte [esi + ecx + 1], dl
jne 0x40716d
cmp al, 0x2d
jne 0x407122
movzx eax, byte [edi + 1]
test byte [eax + ecx + 1], dl
jne 0x40716d
mov eax, dword [ebx + 0x4c]
test eax, eax
jne 0x40715a
push 0x436a9c
push 0x51be60
call fcn.0040ceac
push edi
push 0x51be60
call fcn.0040ceac
push 0x436a9c
push 0x51be60
call fcn.0040ceac
add esp, 0x18
jmp 0x4073f5
push edi
push 0x51be60
call fcn.0040ceac
add esp, 8
jmp 0x4073f5
push 0x436a94
push 0x51be60
call fcn.0040ceac
add esp, 8
jmp 0x4073f5
push 0x436a90
push 0x51be60
call fcn.0040ceac
add esp, 8
jmp 0x4073f5
push 0x436a94
push 0x51be60
call fcn.0040ceac
add esp, 8
test al, al
je 0x4073f5
push 0x51ae68
push 0x436a70
call fcn.004294cd
mov ebp, dword [esp + 0x1c]
add esp, 8
mov esi, 4
jmp 0x40763a
test ebp, ebp
mov al, byte [0x51c35b]
je 0x407204
test al, al
jne 0x407204
mov ecx, dword [0x51d678]
push ecx
push 0x2c
call fcn.0042961a
mov edx, dword [0x51d678]
push edx
call fcn.004058ac
mov al, byte [0x51c35b]
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + ebp*4]
test esi, esi
je 0x4073b1
mov ecx, dword [ebx + 0x40]
test ch, ch
js 0x4072de
test al, al
je 0x407270
mov edi, dword [ebx]
mov ecx, dword [0x51d678]
push 0x435d58
push 0x436a64
mov eax, 0x436a60
call fcn.0040659c
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + ebp*4]
mov ecx, dword [ecx + ebp*4]
mov esi, dword [0x51d678]
call fcn.0040649c
mov edx, dword [0x51d678]
push edx
push 0x436a54
call fcn.004294cd
add esp, 0x10
jmp 0x4073e6
mov al, byte [0x51c361]
test al, al
je 0x4072c3
test edi, edi
je 0x4072c3
mov ecx, dword [0x51d678]
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + ebp*4]
push ecx
push 0x436aa0
add edi, esi
call fcn.004294cd
add esp, 8
cmp esi, edi
jae 0x4073e6
movzx edx, byte [esi]
mov eax, dword [0x51d678]
push edx
push 0x436a4c
push eax
call fcn.004291d4
add esp, 0xc
inc esi
cmp esi, edi
jb 0x4072a2
jmp 0x4073e6
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ecx + ebp*4]
mov edi, dword [0x51d678]
push esi
call fcn.0040641c
add esp, 4
jmp 0x4073e6
test al, al
je 0x40733e
mov edi, dword [ebx]
mov ecx, dword [0x51d678]
push 0x435d58
push 0x436a64
mov eax, 0x436a60
call fcn.0040659c
mov eax, dword [0x44205c]
movzx edx, byte [esi]
mov ecx, dword [eax + 0x20]
mov al, byte [ecx + edx + 1]
add esp, 8
test al, 3
je 0x407319
mov esi, 0x436a94
mov edx, dword [0x51d678]
push edx
push esi
call fcn.004294cd
mov eax, dword [0x51d678]
push eax
push 0x436a54
call fcn.004294cd
add esp, 0x10
jmp 0x4073e6
mov al, byte [esi]
mov ecx, dword [0x44205c]
mov ecx, dword [ecx + 0x20]
movzx edi, al
mov dl, 3
test byte [edi + ecx + 1], dl
jne 0x40739e
cmp al, 0x2d
jne 0x407362
movzx eax, byte [esi + 1]
test byte [eax + ecx + 1], dl
jne 0x40739e
mov eax, dword [ebx + 0x4c]
test eax, eax
mov ecx, dword [0x51d678]
push ecx
jne 0x407396
push 0x27
call fcn.0042961a
mov edx, dword [0x51d678]
push edx
push esi
call fcn.004294cd
mov eax, dword [0x51d678]
push eax
push 0x27
call fcn.0042961a
add esp, 0x18
jmp 0x4073e6
push esi
call fcn.004294cd
jmp 0x4073e3
mov edx, dword [0x51d678]
push edx
push 0x436a94
call fcn.004294cd
jmp 0x4073e3
test al, al
jne 0x4073c7
mov eax, dword [0x51d678]
push eax
push 0x436a94
call fcn.004294cd
jmp 0x4073e3
mov edi, dword [ebx]
mov ecx, dword [0x51d678]
push 0x436570
push 0x436a64
mov eax, 0x436a60
call fcn.0040660c
add esp, 8
mov ecx, dword [0x51d678]
push ecx
call fcn.004058ac
add esp, 4
mov edx, dword [esp + 0x10]
push edx
inc ebp
call fcn.004115cc
cmp ebp, eax
jb 0x406f6c
mov al, byte [0x51c35b]
test al, al
je 0x407430
mov eax, dword [0x51d678]
push eax
push 0x436a40
call fcn.004294cd
mov ecx, dword [0x51d678]
push ecx
call fcn.004058ac
add esp, 0xc
mov al, byte [0x442051]
test al, al
je 0x407508
push 0x436a3c
push 0x51be60
call fcn.0040ceac
mov esi, dword [0x51be64]
mov edx, dword [esp + 0x30]
mov ecx, dword [0x51c348]
add esi, 2
lea eax, [esi + edx]
add esp, 8
cmp eax, ecx
jae 0x4074a3
mov dword [esp + 0x28], eax
mov eax, dword [0x51d678]
push eax
push 0x2c
call fcn.0042961a
mov ecx, dword [0x51d678]
mov edx, dword [0x51be60]
push ecx
push edx
call fcn.004294cd
mov eax, dword [0x51d678]
add esp, 0x10
push eax
call fcn.004058ac
add esp, 4
jmp 0x407531
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4074be
mov eax, dword [0x51d678]
push eax
push 0x436a38
call fcn.004294cd
add esp, 8
mov ecx, dword [0x51d678]
mov edx, dword [0x51c338]
push ecx
push edx
mov dword [esp + 0x34], 1
call fcn.004294cd
mov eax, dword [0x51d678]
mov ecx, dword [0x51be60]
push eax
push ecx
call fcn.004294cd
mov edx, dword [esp + 0x44]
mov eax, dword [0x51d678]
add esp, 0x10
add esi, edx
push eax
mov dword [esp + 0x2c], esi
call fcn.004058ac
add esp, 4
jmp 0x407531
mov al, byte [0x51c35b]
test al, al
jne 0x407531
mov ecx, dword [0x51d678]
push ecx
push 0x436a34
call fcn.004294cd
mov edx, dword [0x51d678]
push edx
call fcn.004058ac
add esp, 0xc
mov eax, dword [esp + 0x10]
push eax
call fcn.00412b7c
test eax, eax
mov dword [esp + 0x18], eax
jne 0x406edc
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov al, byte [0x51c35b]
test al, al
je 0x40759a
mov eax, dword [0x51d678]
push eax
push 0x436a24
jmp 0x4075b7
mov edx, dword [0x51c3d4]
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x38]
push ecx
push edx
push 0x4369f4
push 0x600
push esi
call fcn.004145fc
push 0x51ae68
push esi
call fcn.004294cd
add esp, 0x1c
mov ebp, esi
jmp 0x407635
mov al, byte [0x442051]
test al, al
je 0x4075bf
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4075bf
mov ecx, dword [0x51d678]
push ecx
push 0x436a38
call fcn.004294cd
add esp, 8
mov edx, dword [0x51d678]
push edx
call fcn.004297d2
mov eax, dword [0x51d678]
push eax
call fcn.004058ac
mov ecx, dword [case.0x6502ec.0]
add esp, 8
push ecx
call fcn.004115dc
test eax, eax
je 0x40767f
mov edx, dword [esp + 0x24]
mov ecx, dword [case.0x6502ec.0]
push edx
lea eax, [esp + 0x3c]
push eax
push ecx
call fcn.004115ec
mov edx, dword [case.0x6502ec.0]
push eax
push edx
call fcn.004115dc
push eax
mov eax, dword [0x51c3d4]
push eax
push 0x4369c0
push 0x600
push ebp
call fcn.004145fc
push 0x51ae68
push ebp
call fcn.004294cd
add esp, 0x28
mov esi, 3
lea ecx, [esp + 0x600]
cmp ebp, ecx
je 0x40764e
push ebp
call fcn.0040c08c
add esp, 4
mov eax, dword [0x51c3b4]
test eax, eax
jne 0x40765d
mov dword [0x51c3b4], esi
mov al, byte [0x51c34f]
test al, al
jne 0x407717
mov eax, dword [case.0x6502ec.0]
test eax, eax
je 0x407679
push eax
call fcn.00410f2c
push esi
call fcn.00429194
mov al, byte [fcn.00442054]
test al, al
je 0x4076a7
mov edx, dword [0x51d678]
push edx
push 0x4369b0
call fcn.004294cd
mov eax, dword [0x51d678]
push eax
call fcn.004058ac
add esp, 0xc
mov al, byte [0x442056]
test al, al
je 0x4076d4
mov ecx, dword [esp + 0x20]
mov edx, dword [0x51d678]
push ecx
push 0x436984
push edx
call fcn.004291d4
mov eax, dword [0x51d678]
push eax
call fcn.004058ac
add esp, 0x10
mov al, byte [0x51c35a]
test al, al
je 0x4076fd
mov ecx, dword [0x51d678]
push 0x436978
push ecx
call fcn.004291d4
mov edx, dword [0x51d678]
push edx
call fcn.004058ac
add esp, 0xc
push ebx
call fcn.0041042c
lea eax, [esp + 0x600]
cmp ebp, eax
je 0x407717
push ebp
call fcn.0040c08c
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbf0
ret