Function at 0x405de0
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0x40
push ebx
push ebp
push esi
push edi
mov ebx, 0xe100
mov edi, 0x7080
mov esi, ecx
push 0xa
mov dword [esp + 0x20], 0xe1000
mov dword [esp + 0x24], 0x70800
mov dword [esp + 0x28], 0x38400
mov dword [esp + 0x2c], 0x1c200
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0x9600
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], 0x4b00
mov dword [esp + 0x40], 0x3840
mov dword [esp + 0x44], 0x2580
mov dword [esp + 0x48], 0x12c0
mov dword [esp + 0x4c], 0x960
mov dword [esp + 0x50], 0x4b0
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x2338
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.004016c0
push eax
push esi
call fcn.00401700
mov eax, dword [esi + 0x118]
add esp, 8
shl eax, 5
mov ecx, dword [eax + 0x41d480]
shr ecx, 0xf
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 0x1b
ja case.0x405ea7.3
xor edx, edx
mov dl, byte [eax + 0x406ac8]
jmp dword [edx*4 + 0x406abc]
mov eax, dword [esi + 0x19c]
mov byte [esi + 0x881], 0x8f
cmp eax, 2
jne 0x40625f
mov ebp, dword [esi + 0xe4]
fild dword [esi + 0x110]
mov dword [esp + 0x10], ebp
fild dword [esp + 0x10]
fdivr st(1)
fst dword [esp + 0x10]
fmul dword [0x426220]
fcomp dword [0x42621c]
fnstsw ax
test ah, 0x41
jne 0x406192
fld dword [esp + 0x10]
fmul dword [0x426218]
fcomp dword [0x42621c]
fnstsw ax
test ah, 0x41
jne 0x4060c5
fld dword [esp + 0x10]
fmul dword [0x426214]
fcomp dword [0x42621c]
fnstsw ax
test ah, 0x41
jne 0x405ff8
mov byte [esi + 0x882], 0
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fmul dword [0x426210]
fadd qword [0x426208]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x426210]
fsub st(1)
fdivrp st(1)
fcom dword [0x426204]
fnstsw ax
test ah, 0x41
jne 0x405f7f
fcomp dword [0x426200]
fnstsw ax
test ah, 1
jne 0x405f8a
jmp 0x405f81
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x405f38
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fmul dword [0x426210]
fcomp dword [0x42621c]
fnstsw ax
test ah, 1
jne 0x405fb2
dec ecx
sub edx, 4
test ecx, ecx
jge 0x405f93
mov edi, dword [esp + edi*4 + 0x1c]
mov eax, ebp
cmp ebp, edi
jl 0x405fbe
mov eax, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp eax, ecx
jle 0x405fce
cmp ebp, edi
jge 0x405fd0
mov edi, ebp
jmp 0x405fd0
mov edi, ecx
mov dword [esp + 0x10], edi
mov dword [esi + 0xe4], edi
fild dword [esp + 0x10]
fdivr st(1)
fmul dword [0x426210]
fadd qword [0x426208]
call sub.MSVCRT.dll__ftol
fstp st(0)
jmp 0x406353
mov byte [esi + 0x882], 0x80
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fmul dword [0x426214]
fadd qword [0x426208]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x426214]
fsub st(1)
fdivrp st(1)
fcom dword [0x426204]
fnstsw ax
test ah, 0x41
jne 0x40604c
fcomp dword [0x426200]
fnstsw ax
test ah, 1
jne 0x406057
jmp 0x40604e
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x406005
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fmul dword [0x426214]
fcomp dword [0x42621c]
fnstsw ax
test ah, 1
jne 0x40607f
dec ecx
sub edx, 4
test ecx, ecx
jge 0x406060
mov edi, dword [esp + edi*4 + 0x1c]
mov eax, ebp
cmp ebp, edi
jl 0x40608b
mov eax, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp eax, ecx
jle 0x40609b
cmp ebp, edi
jge 0x40609d
mov edi, ebp
jmp 0x40609d
mov edi, ecx
mov dword [esp + 0x10], edi
mov dword [esi + 0xe4], edi
fild dword [esp + 0x10]
fdivr st(1)
fmul dword [0x426214]
fadd qword [0x426208]
call sub.MSVCRT.dll__ftol
fstp st(0)
jmp 0x406353
mov byte [esi + 0x882], 0x40
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fmul dword [0x426218]
fadd qword [0x426208]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x426218]
fsub st(1)
fdivrp st(1)
fcom dword [0x426204]
fnstsw ax
test ah, 0x41
jne 0x406119
fcomp dword [0x426200]
fnstsw ax
test ah, 1
jne 0x406124
jmp 0x40611b
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x4060d2
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fmul dword [0x426218]
fcomp dword [0x42621c]
fnstsw ax
test ah, 1
jne 0x40614c
dec ecx
sub edx, 4
test ecx, ecx
jge 0x40612d
mov edi, dword [esp + edi*4 + 0x1c]
mov eax, ebp
cmp ebp, edi
jl 0x406158
mov eax, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp eax, ecx
jle 0x406168
cmp ebp, edi
jge 0x40616a
mov edi, ebp
jmp 0x40616a
mov edi, ecx
mov dword [esp + 0x10], edi
mov dword [esi + 0xe4], edi
fild dword [esp + 0x10]
fdivr st(1)
fmul dword [0x426218]
fadd qword [0x426208]
call sub.MSVCRT.dll__ftol
fstp st(0)
jmp 0x406353
mov byte [esi + 0x882], 0xc0
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fmul dword [0x426220]
fadd qword [0x426208]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x426220]
fsub st(1)
fdivrp st(1)
fcom dword [0x426204]
fnstsw ax
test ah, 0x41
jne 0x4061e6
fcomp dword [0x426200]
fnstsw ax
test ah, 1
jne 0x4061f1
jmp 0x4061e8
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x40619f
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fmul dword [0x426220]
fcomp dword [0x42621c]
fnstsw ax
test ah, 1
jne 0x406219
dec ecx
sub edx, 4
test ecx, ecx
jge 0x4061fa
mov edi, dword [esp + edi*4 + 0x1c]
mov eax, ebp
cmp ebp, edi
jl 0x406225
mov eax, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp eax, ecx
jle 0x406235
cmp ebp, edi
jge 0x406237
mov edi, ebp
jmp 0x406237
mov edi, ecx
mov dword [esp + 0x10], edi
mov dword [esi + 0xe4], edi
fild dword [esp + 0x10]
fdivr st(1)
fmul dword [0x426220]
fadd qword [0x426208]
call sub.MSVCRT.dll__ftol
fstp st(0)
jmp 0x406353
cmp eax, 3
jne 0x40635b
fild dword [esi + 0x110]
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fmul dword [0x426218]
fcom dword [0x4261fc]
fnstsw ax
test ah, 1
jne 0x4062c8
fadd qword [0x426208]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x426218]
fsub st(1)
fdivrp st(1)
fcom dword [0x426204]
fnstsw ax
test ah, 0x41
jne 0x4062ca
fcomp dword [0x426200]
fnstsw ax
test ah, 1
jne 0x4062d5
jmp 0x4062cc
fstp st(0)
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x406274
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fmul dword [0x426218]
fcomp dword [0x4261f8]
fnstsw ax
test ah, 1
jne 0x4062fd
dec ecx
sub edx, 4
test ecx, ecx
jge 0x4062de
mov eax, dword [esi + 0xe4]
mov edi, dword [esp + edi*4 + 0x1c]
cmp eax, edi
mov edx, eax
jl 0x40630f
mov edx, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp edx, ecx
jle 0x40631f
cmp eax, edi
jl 0x406321
mov eax, edi
jmp 0x406321
mov eax, ecx
mov dword [esp + 0x10], eax
mov dword [esi + 0xe4], eax
fidiv dword [esp + 0x10]
fmul dword [0x426218]
fadd qword [0x426208]
fld st(0)
call sub.MSVCRT.dll__ftol
neg eax
xor ecx, ecx
mov cl, ah
mov byte [esi + 0x882], cl
call sub.MSVCRT.dll__ftol
neg al
mov byte [esi + 0x883], al
mov bl, byte [esi + 0x882]
xor eax, eax
mov al, byte [esi + 0x883]
or dl, 0xff
mov ecx, eax
mov eax, pe_nt_image_headers32
sub eax, ecx
sub dl, bl
shl eax, 1
cmp eax, 0xfe
mov byte [esi + 0x884], dl
jle 0x40638b
mov eax, 0xfe
mov ecx, dword [esi + 0xe0]
mov byte [esi + 0x885], al
mov eax, 0x1b4e81b5
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [edx + edx*4]
shl eax, 2
cmp eax, 0xfa
jg 0x4063c8
cmp eax, 0x28
jge 0x4063c1
mov eax, 0x28
jmp 0x4063cd
cmp eax, 0xfa
jle 0x4063cd
mov eax, 0xfa
mov ecx, esi
mov byte [esi + 0x886], al
call fcn.00402390
mov ecx, dword [esi + 0x174]
mov byte [esi + 0x887], al
cmp ecx, 0x72
jl 0x406402
lea ecx, [esi + 0x881]
push 4
mov byte [esi + 0x884], al
push ecx
mov byte [ecx], 1
jmp 0x406870
lea eax, [esi + 0x881]
push 7
push eax
mov ecx, esi
call fcn.00401d50
mov ecx, dword [esi + 0xe4]
push 0x8f
push ecx
mov ecx, esi
call fcn.004021b0
push 0x1388
mov ecx, esi
call fcn.00402160
push 1
push 0
mov ecx, esi
call fcn.00401ef0
mov al, byte [esi + 0x23]
test al, al
je 0x406aa1
mov ecx, esi
call fcn.00402180
test al, al
jne 0x406aae
lea edx, [esi + 0x481]
push 1
push edx
mov ecx, esi
call fcn.00401ef0
test al, al
je 0x40643c
mov al, byte [esi + 0x25]
test al, al
je 0x406488
mov eax, dword [esi + 0x1c4]
test eax, eax
je 0x406488
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x40
ret
cmp byte [esi + 0x481], 0x8f
je 0x40649e
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x40
ret
mov eax, dword [esi + 0xe0]
push 0xffffffffffffffff
push eax
mov ecx, esi
call fcn.004021b0
lea eax, [esi + 0x881]
push 6
mov byte [eax], 0x8e
jmp 0x40686f
cmp dword [esi + 0x174], 0x71
jge case.0x405ea7.3
mov eax, dword [esi + 0x110]
lea ebp, [esi + 0x881]
cmp eax, 0x1312d00
mov dword [esp + 0x10], eax
mov byte [ebp], 0x8e
jge 0x406512
mov ecx, dword [esi + 0xe4]
mov byte [esi + 0x882], 0x58
test ecx, ecx
mov byte [esi + 0x889], 0x83
jne 0x406504
mov dword [esi + 0xe4], edi
mov ecx, dword [esi + 0xe4]
cmp ecx, edi
jl 0x40653c
mov ecx, edi
jmp 0x40653c
mov ecx, dword [esi + 0xe4]
mov byte [esi + 0x882], 0x98
test ecx, ecx
mov byte [esi + 0x889], 0x81
jne 0x406530
mov dword [esi + 0xe4], ebx
mov ecx, dword [esi + 0xe4]
cmp ecx, ebx
jl 0x40653c
mov ecx, ebx
mov dword [esi + 0xe4], ecx
mov cl, byte [esi + 0x47c]
mov byte [esi + 0x883], cl
mov ecx, dword [esi + 0xe4]
test ecx, ecx
jne 0x406571
xor edx, edx
cmp eax, 0x1312d00
setge dl
dec edx
and edx, 0xffff8f80
add edx, ebx
mov dword [esi + 0xe4], edx
cdq
idiv dword [esi + 0xe4]
mov ebx, eax
mov eax, 0x51eb851f
imul ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
jne 0x40659e
neg bl
mov byte [esi + 0x884], 0
mov byte [esi + 0x885], bl
jmp 0x4065bb
mov cl, dl
mov eax, ebx
inc cl
mov byte [esi + 0x884], cl
and ecx, 0xff
cdq
idiv ecx
neg al
mov byte [esi + 0x885], al
fild dword [esp + 0x10]
mov byte [esi + 0x886], 0x64
fmul dword [0x4261f4]
fsubr dword [0x4261f0]
call sub.MSVCRT.dll__ftol
and eax, 0xffff
xor ecx, ecx
mov cl, ah
push 0xc
mov byte [esi + 0x887], cl
mov byte [esi + 0x888], al
mov byte [esi + 0x88a], 0x20
mov byte [esi + 0x88b], 0xff
mov byte [esi + 0x88c], 0
push ebp
jmp 0x406870
mov al, byte [esi + 0x47d]
mov dl, byte [esi + 0x47c]
mov byte [esi + 0x883], al
mov eax, dword [esi + 0x19c]
test eax, eax
mov byte [esi + 0x881], 1
mov byte [esi + 0x882], dl
jne 0x40676d
fild dword [esi + 0x110]
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fcom dword [0x4261ec]
fnstsw ax
test ah, 1
jne 0x40668a
fadd qword [0x426208]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fsub st(1)
fdivrp st(1)
fcom dword [0x426204]
fnstsw ax
test ah, 0x41
jne 0x40668c
fcomp dword [0x426200]
fnstsw ax
test ah, 1
jne 0x406697
jmp 0x40668e
fstp st(0)
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x406642
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fcomp dword [0x4261e8]
fnstsw ax
test ah, 1
jne 0x4066b9
dec ecx
sub edx, 4
test ecx, ecx
jge 0x4066a0
mov eax, dword [esi + 0xe4]
mov edi, dword [esp + edi*4 + 0x1c]
cmp eax, edi
mov edx, eax
jl 0x4066cb
mov edx, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp edx, ecx
jle 0x4066df
cmp eax, edi
jge 0x4066db
mov edx, eax
jmp 0x4066e1
mov edx, edi
jmp 0x4066e1
mov edx, ecx
cmp edx, 0x9600
jle 0x4066f0
mov eax, 0x9600
jmp 0x406706
cmp eax, edi
mov edx, eax
jl 0x4066f8
mov edx, edi
cmp edx, ecx
jle 0x406704
cmp eax, edi
jl 0x406706
mov eax, edi
jmp 0x406706
mov eax, ecx
mov dword [esp + 0x10], eax
mov dword [esi + 0xe4], eax
fidiv dword [esp + 0x10]
fld st(0)
fadd qword [0x426208]
fld st(0)
call sub.MSVCRT.dll__ftol
neg eax
xor ecx, ecx
mov cl, ah
mov byte [esi + 0x884], cl
call sub.MSVCRT.dll__ftol
fmul qword [0x4261e0]
neg al
mov byte [esi + 0x885], al
fadd qword [0x426208]
fld st(0)
call sub.MSVCRT.dll__ftol
neg eax
xor edx, edx
mov dl, ah
mov byte [esi + 0x886], dl
call sub.MSVCRT.dll__ftol
neg al
mov byte [esi + 0x887], al
jmp 0x40685a
cmp eax, 1
jne 0x40685a
fild dword [esi + 0x110]
xor edi, edi
lea ebx, [esp + 0x1c]
fild dword [ebx]
fld st(1)
fdiv st(1)
fmul dword [0x4261d8]
fadd qword [0x426208]
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fdivr st(2)
fmul dword [0x4261d8]
fsub st(1)
fdivrp st(1)
fcom dword [0x426204]
fnstsw ax
test ah, 0x41
jne 0x4067c9
fcomp dword [0x426200]
fnstsw ax
test ah, 1
jne 0x4067d4
jmp 0x4067cb
fstp st(0)
inc edi
add ebx, 4
cmp edi, 0xd
jb 0x406782
mov ecx, 0xc
lea edx, [esp + 0x4c]
fild dword [edx]
fdivr st(1)
fmul dword [0x4261d8]
fcomp dword [0x4261f8]
fnstsw ax
test ah, 1
jne 0x4067fc
dec ecx
sub edx, 4
test ecx, ecx
jge 0x4067dd
mov eax, dword [esi + 0xe4]
mov edi, dword [esp + edi*4 + 0x1c]
cmp eax, edi
mov edx, eax
jl 0x40680e
mov edx, edi
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp edx, ecx
jle 0x40681e
cmp eax, edi
jl 0x406820
mov eax, edi
jmp 0x406820
mov eax, ecx
mov dword [esp + 0x10], eax
mov dword [esi + 0xe4], eax
fidiv dword [esp + 0x10]
fmul dword [0x4261d8]
fadd qword [0x426208]
fld st(0)
call sub.MSVCRT.dll__ftol
neg eax
xor ecx, ecx
mov cl, ah
mov byte [esi + 0x884], cl
call sub.MSVCRT.dll__ftol
neg al
mov byte [esi + 0x885], al
mov ecx, esi
call fcn.00402390
mov byte [esi + 0x888], al
push 8
lea eax, [esi + 0x881]
push eax
mov ecx, esi
call fcn.00401d50
cmp dword [esi + 0x198], 3
jge 0x406893
mov edx, dword [esi + 0xe4]
push 0x8e
push edx
mov ecx, esi
call fcn.004021b0
push 0x1388
mov ecx, esi
call fcn.00402160
push 1
push 0
mov ecx, esi
call fcn.00401ef0
mov al, byte [esi + 0x23]
test al, al
je 0x406aa1
mov ecx, esi
call fcn.00402180
test al, al
jne 0x406aae
lea eax, [esi + 0x481]
push 1
push eax
mov ecx, esi
call fcn.00401ef0
test al, al
je 0x4068aa
mov al, byte [esi + 0x25]
test al, al
je 0x4068f6
mov eax, dword [esi + 0x1c4]
test eax, eax
je 0x4068f6
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x40
ret
mov eax, dword [esi + 0x198]
test eax, eax
jne 0x40691e
mov cl, byte [esi + 0x481]
lea edi, [esi + 0x481]
cmp cl, 0x8e
je 0x406957
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x40
ret
cmp eax, 3
lea edi, [esi + 0x481]
jl 0x406945
mov cl, byte [esi + 0x881]
mov dl, byte [edi]
and cl, 0xf
cmp dl, cl
je 0x406957
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x40
ret
cmp byte [edi], 0x84
je 0x406957
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x40
ret
cmp eax, 3
jl 0x40696c
mov edx, dword [esi + 0xe4]
push 0xffffffffffffffff
push edx
mov ecx, esi
call fcn.004021b0
mov eax, dword [esi + 0x198]
test eax, eax
jne 0x406a3c
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esi + 0x118]
xor ecx, ecx
shl eax, 5
mov byte [esi + 0x881], 0x80
mov byte [esi + 0x882], 0
lea eax, [eax + 0x41d488]
mov byte [esi + 0x883], 0
mov byte [esi + 0x884], 0x36
mov byte [esi + 0x885], 1
mov cl, byte [eax + 1]
xor ebx, ebx
mov byte [esi + 0x886], cl
mov dl, byte [eax]
mov byte [esi + 0x887], dl
lea eax, [esi + 0x881]
push 7
push eax
mov ecx, esi
call fcn.00401d50
push 0x1388
mov ecx, esi
call fcn.00402160
push 1
push 0
mov ecx, esi
call fcn.00401ef0
mov al, byte [esi + 0x23]
test al, al
je 0x406aa1
mov ecx, esi
call fcn.00402180
test al, al
jne 0x406aae
push 1
push edi
mov ecx, esi
call fcn.00401ef0
test al, al
je 0x4069f0
mov al, byte [esi + 0x25]
test al, al
je 0x406a2d
mov eax, dword [esi + 0x1c4]
test eax, eax
jne 0x40694a
cmp byte [edi], 0x80
jne 0x40694a
inc ebx
cmp ebx, 5
jl 0x4069c9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x18], 0
sub eax, ebx
sub esp, 8
mov dword [esp + 0x1c], eax
mov ecx, esi
fild qword [esp + 0x1c]
fmul dword [0x4261d4]
fstp qword [esp]
push 0x2339
call fcn.004016c0
push eax
push esi
call fcn.00401700
mov eax, dword [esi + 0xe4]
add esp, 0x10
mov ecx, esi
push eax
push 0x233a
call fcn.004016c0
push eax
push esi
call fcn.00401700
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x40
ret
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x40
ret