Function at 0x4d5390
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5ef30f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x11c
push ebx
mov dword [esp + 0x20], ecx
push esi
push edi
lea ecx, [esp + 0x20]
call fcn.005e2960
lea ecx, [esp + 0x1c]
mov dword [esp + 0x130], 0
call fcn.005e2960
lea ecx, [esp + 0x24]
mov byte [esp + 0x130], 1
call fcn.005e2960
mov eax, dword [ebp + 8]
mov byte [esp + 0x130], 2
test eax, eax
jne 0x4d5444
lea ecx, [esp + 0x24]
mov byte [esp + 0x130], 1
call fcn.005e2954
lea ecx, [esp + 0x1c]
mov byte [esp + 0x130], 0
call fcn.005e2954
lea ecx, [esp + 0x20]
mov dword [esp + 0x130], 0xffffffff
call fcn.005e2954
xor eax, eax
mov ecx, dword [esp + 0x128]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [ebp + 0x10]
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
mov ebx, dword [ebp + 8]
mov al, byte [esp + 0x12]
test al, al
jne 0x4d6ab5
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4d6ab5
test eax, eax
je 0x4d6a73
mov ecx, dword [ebx + 0x24]
cmp eax, ecx
jle 0x4d547d
mov dword [ebx + 0x30], ecx
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4d6a73
mov ecx, dword [ebx + 0x20]
dec eax
mov esi, dword [ecx + eax*4]
mov dword [ebx + 0x30], eax
test esi, esi
mov dword [esp + 0x2c], esi
je 0x4d6a73
mov ecx, esi
call fcn.004ff1b0
test eax, eax
jne 0x4d6a85
mov ecx, esi
call fcn.004ff2a0
cmp eax, 0x236
jg 0x4d6895
cmp eax, 0x232
jge 0x4d6555
cmp eax, 0x3c
jl 0x4d5454
cmp eax, 0x50
jg 0x4d5454
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4d6945
test eax, eax
je 0x4d695a
mov ecx, dword [ebx + 0x24]
cmp eax, ecx
jle 0x4d54f1
mov dword [ebx + 0x30], ecx
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4d695a
mov edx, dword [ebx + 0x20]
dec eax
mov ecx, dword [edx + eax*4]
mov dword [ebx + 0x30], eax
test ecx, ecx
mov dword [esp + 0x14], ecx
je 0x4d695a
mov ebx, ecx
call fcn.004ff1b0
test eax, eax
jne 0x4d696f
mov ecx, ebx
call fcn.004ff320
test eax, eax
mov dword [esp + 0x14], eax
je 0x4d6984
mov ebx, dword [eax + 0x30]
mov ecx, esi
call fcn.004ff2e0
mov ecx, esi
mov dword [esp + 0x34], eax
call fcn.004ff300
cmp ebx, dword [esp + 0x34]
setl cl
cmp eax, 0xffffffff
je 0x4d555d
cmp ebx, eax
jle 0x4d555d
mov al, 1
jmp 0x4d555f
xor al, al
test cl, cl
jne 0x4d695a
test al, al
jne 0x4d6999
test ebx, ebx
je 0x4d5451
lea eax, [ebx*8]
sub eax, ebx
lea ecx, [eax*8 + 4]
push ecx
call fcn.005e29a8
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
mov byte [esp + 0x130], 7
je 0x4d55ba
push fcn.004ff3d0
push fcn.004ff370
lea esi, [eax + 4]
push ebx
push 0x38
push esi
mov dword [eax], ebx
call fcn.005e3714
jmp 0x4d55bc
xor esi, esi
test esi, esi
mov byte [esp + 0x130], 2
je 0x4d69ae
lea eax, [ebx - 1]
lea edx, [eax*8]
sub edx, eax
lea eax, [esi + edx*8]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x4d5614
mov ecx, dword [esp + 0x34]
mov edx, dword [ebp + 0xc]
mov eax, ecx
sub ecx, 0x38
push eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
call fcn.004d5390
test eax, eax
je 0x4d6950
jmp 0x4d55df
mov ecx, dword [esp + 0x2c]
call fcn.004ff2a0
cmp eax, 0x3c
jne 0x4d563d
mov ecx, esi
call fcn.004ff5c0
fsin
fstp qword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
jmp 0x4d653b
mov ecx, dword [esp + 0x2c]
call fcn.004ff2a0
cmp eax, 0x3d
jne 0x4d5667
mov ecx, esi
call fcn.004ff5c0
fcos
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
jmp 0x4d653c
mov ecx, dword [esp + 0x2c]
call fcn.004ff2a0
cmp eax, 0x3e
jne 0x4d56ba
test ebx, ebx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
jle 0x4d56ab
mov dword [esp + 0x14], ebx
mov dword [esp + 0x34], esi
mov ebx, esi
mov ecx, ebx
add ebx, 0x38
call fcn.004ff5c0
fadd qword [esp + 0x3c]
dec dword [esp + 0x14]
fstp qword [esp + 0x3c]
jne 0x4d5693
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push edx
push eax
jmp 0x4d653c
mov ecx, dword [esp + 0x2c]
call fcn.004ff2a0
cmp eax, 0x3f
jne 0x4d56f8
mov ecx, esi
call fcn.004ff5c0
fcom qword [0x6018b0]
fnstsw ax
test ah, 0x41
jne 0x4d69c3
fldln2
fxch st(1)
fyl2x
fstp qword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
jmp 0x4d653b
mov ecx, dword [esp + 0x2c]
call fcn.004ff2a0
cmp eax, 0x40
jne 0x4d5737
mov ecx, esi
call fcn.004ff5c0
fcom qword [0x6018b0]
fnstsw ax
test ah, 0x41
jne 0x4d69c3
fldlg2
fxch st(1)
fyl2x
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
jmp 0x4d653c
mov ecx, dword [esp + 0x2c]
call fcn.004ff2a0
cmp eax, 0x41
jne 0x4d5761
mov ecx, esi
call fcn.004ff5c0
fabs
fstp qword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
jmp 0x4d653c
mov ecx, dword [esp + 0x2c]
call fcn.004ff2a0
cmp eax, 0x42
jne 0x4d57cb
mov ecx, esi
call fcn.004ff5c0
fstp qword [esp + 0x2c]
cmp ebx, 1
jle 0x4d57bc
dec ebx
lea ecx, [esi + 0x38]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x34], ecx
mov ebx, ecx
mov ecx, ebx
call fcn.004ff5c0
fcomp qword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x4d57aa
mov ecx, ebx
call fcn.004ff5c0
fstp qword [esp + 0x2c]
mov eax, dword [esp + 0x14]
add ebx, 0x38
dec eax
mov dword [esp + 0x14], eax
jne 0x4d578d
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push edx
push eax
jmp 0x4d653c
mov ecx, dword [esp + 0x2c]
call fcn.004ff2a0
cmp eax, 0x43
jne 0x4d5835
mov ecx, esi
call fcn.004ff5c0
fstp qword [esp + 0x2c]
cmp ebx, 1
jle 0x4d5826
dec ebx
lea ecx, [esi + 0x38]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x34], ecx
mov ebx, ecx
mov ecx, ebx
call fcn.004ff5c0
fcomp qword [esp + 0x2c]
fnstsw ax
test ah, 1
je 0x4d5814
mov ecx, ebx
call fcn.004ff5c0
fstp qword [esp + 0x2c]
mov eax, dword [esp + 0x14]
add ebx, 0x38
dec eax
mov dword [esp + 0x14], eax
jne 0x4d57f7
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push edx
push eax
jmp 0x4d653c
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x44
jne 0x4d5862
mov ecx, esi
call fcn.004ff5c0
fptan
fstp st(0)
fstp qword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
jmp 0x4d653b
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x45
jne 0x4d5a0f
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004ff5c0
fcomp qword [esp + 0x14]
lea ecx, [esi + 0x70]
fnstsw ax
test ah, 1
jne 0x4d589b
lea ecx, [esi + 0xa8]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004ff620
lea ecx, [esi + 0x70]
mov byte [esp + 0x12], 1
call fcn.004ff530
push eax
lea ecx, [esp + 0x24]
call fcn.005e2b5e
lea ecx, [esi + 0xa8]
call fcn.004ff530
push eax
lea ecx, [esp + 0x20]
call fcn.005e2b5e
lea ebx, [edi + 0x30]
push 0x639818
mov ecx, ebx
mov dword [edi + 0x34], 0
call fcn.005e2a4a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d6548
mov edx, dword [esp + 0x1c]
mov edx, dword [edx - 8]
cmp edx, 2
jl 0x4d6548
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d6548
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + edx*2 - 2], 0x22
jne 0x4d6548
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x58]
push 1
push eax
call fcn.005e2ada
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 8
call fcn.005e2a44
lea ecx, [esp + 0x54]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x70]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x1c]
add eax, 0xfffffffe
push eax
push 1
push edx
call fcn.005e2ada
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 9
call fcn.005e2a44
lea ecx, [esp + 0x70]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004ff5c0
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4d59e8
lea eax, [esp + 0x20]
push eax
jmp 0x4d59ed
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x28]
call fcn.005e2a44
lea edx, [esp + 0x24]
mov ecx, ebx
push edx
call fcn.005e2a44
mov eax, dword [esi]
push 3
mov ecx, esi
call dword [eax]
jmp 0x4d5451
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x46
jne 0x4d5b9c
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004ff5c0
fcomp qword [esp + 0x14]
lea ecx, [esi + 0x70]
fnstsw ax
test ah, 0x41
jne 0x4d5a48
lea ecx, [esi + 0xa8]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004ff620
lea ecx, [esi + 0x70]
mov byte [esp + 0x12], 1
call fcn.004ff530
push eax
lea ecx, [esp + 0x24]
call fcn.005e2b5e
lea ecx, [esi + 0xa8]
call fcn.004ff530
push eax
lea ecx, [esp + 0x20]
call fcn.005e2b5e
lea ebx, [edi + 0x30]
push 0x639818
mov ecx, ebx
mov dword [edi + 0x34], 0
call fcn.005e2a4a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d6548
mov edx, dword [esp + 0x1c]
mov edx, dword [edx - 8]
cmp edx, 2
jl 0x4d6548
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d6548
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + edx*2 - 2], 0x22
jne 0x4d6548
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x50]
push 1
push eax
call fcn.005e2ada
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 0xa
call fcn.005e2a44
lea ecx, [esp + 0x4c]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x6c]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x1c]
add eax, 0xfffffffe
push eax
push 1
push edx
call fcn.005e2ada
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 0xb
call fcn.005e2a44
lea ecx, [esp + 0x6c]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004ff5c0
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x41
je 0x4d59e8
lea eax, [esp + 0x20]
push eax
jmp 0x4d59ed
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x47
jne 0x4d5d29
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004ff5c0
fcomp qword [esp + 0x14]
lea ecx, [esi + 0x70]
fnstsw ax
test ah, 0x41
je 0x4d5bd5
lea ecx, [esi + 0xa8]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004ff620
lea ecx, [esi + 0x70]
mov byte [esp + 0x12], 1
call fcn.004ff530
push eax
lea ecx, [esp + 0x24]
call fcn.005e2b5e
lea ecx, [esi + 0xa8]
call fcn.004ff530
push eax
lea ecx, [esp + 0x20]
call fcn.005e2b5e
lea ebx, [edi + 0x30]
push 0x639818
mov ecx, ebx
mov dword [edi + 0x34], 0
call fcn.005e2a4a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d6548
mov edx, dword [esp + 0x1c]
mov edx, dword [edx - 8]
cmp edx, 2
jl 0x4d6548
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d6548
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + edx*2 - 2], 0x22
jne 0x4d6548
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x48]
push 1
push eax
call fcn.005e2ada
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 0xc
call fcn.005e2a44
lea ecx, [esp + 0x44]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x78]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x1c]
add eax, 0xfffffffe
push eax
push 1
push edx
call fcn.005e2ada
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 0xd
call fcn.005e2a44
lea ecx, [esp + 0x78]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004ff5c0
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4d59e8
lea eax, [esp + 0x20]
push eax
jmp 0x4d59ed
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x48
jne 0x4d5eb6
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004ff5c0
fcomp qword [esp + 0x14]
lea ecx, [esi + 0x70]
fnstsw ax
test ah, 1
je 0x4d5d62
lea ecx, [esi + 0xa8]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004ff620
lea ecx, [esi + 0x70]
mov byte [esp + 0x12], 1
call fcn.004ff530
push eax
lea ecx, [esp + 0x24]
call fcn.005e2b5e
lea ecx, [esi + 0xa8]
call fcn.004ff530
push eax
lea ecx, [esp + 0x20]
call fcn.005e2b5e
lea ebx, [edi + 0x30]
push 0x639818
mov ecx, ebx
mov dword [edi + 0x34], 0
call fcn.005e2a4a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d6548
mov edx, dword [esp + 0x1c]
mov edx, dword [edx - 8]
cmp edx, 2
jl 0x4d6548
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d6548
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + edx*2 - 2], 0x22
jne 0x4d6548
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x60]
push 1
push eax
call fcn.005e2ada
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 0xe
call fcn.005e2a44
lea ecx, [esp + 0x5c]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x74]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x1c]
add eax, 0xfffffffe
push eax
push 1
push edx
call fcn.005e2ada
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 0xf
call fcn.005e2a44
lea ecx, [esp + 0x74]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004ff5c0
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 1
jne 0x4d59e8
lea eax, [esp + 0x20]
push eax
jmp 0x4d59ed
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x49
jne 0x4d6043
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004ff5c0
fcomp qword [esp + 0x14]
lea ecx, [esi + 0x70]
fnstsw ax
test ah, 0x40
jne 0x4d5eef
lea ecx, [esi + 0xa8]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004ff620
lea ecx, [esi + 0x70]
mov byte [esp + 0x12], 1
call fcn.004ff530
push eax
lea ecx, [esp + 0x24]
call fcn.005e2b5e
lea ecx, [esi + 0xa8]
call fcn.004ff530
push eax
lea ecx, [esp + 0x20]
call fcn.005e2b5e
lea ebx, [edi + 0x30]
push 0x639818
mov ecx, ebx
mov dword [edi + 0x34], 0
call fcn.005e2a4a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d6548
mov edx, dword [esp + 0x1c]
mov edx, dword [edx - 8]
cmp edx, 2
jl 0x4d6548
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d6548
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + edx*2 - 2], 0x22
jne 0x4d6548
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x68]
push 1
push eax
call fcn.005e2ada
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 0x10
call fcn.005e2a44
lea ecx, [esp + 0x64]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x7c]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x1c]
add eax, 0xfffffffe
push eax
push 1
push edx
call fcn.005e2ada
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 0x11
call fcn.005e2a44
lea ecx, [esp + 0x7c]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004ff5c0
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x40
je 0x4d59e8
lea eax, [esp + 0x20]
push eax
jmp 0x4d59ed
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x4a
jne 0x4d61d0
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004ff5c0
fcomp qword [esp + 0x14]
lea ecx, [esi + 0x70]
fnstsw ax
test ah, 0x40
je 0x4d607c
lea ecx, [esi + 0xa8]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004ff620
lea ecx, [esi + 0x70]
mov byte [esp + 0x12], 1
call fcn.004ff530
push eax
lea ecx, [esp + 0x24]
call fcn.005e2b5e
lea ecx, [esi + 0xa8]
call fcn.004ff530
push eax
lea ecx, [esp + 0x20]
call fcn.005e2b5e
lea ebx, [edi + 0x30]
push 0x639818
mov ecx, ebx
mov dword [edi + 0x34], 0
call fcn.005e2a4a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d6548
mov edx, dword [esp + 0x1c]
mov edx, dword [edx - 8]
cmp edx, 2
jl 0x4d6548
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d6548
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + edx*2 - 2], 0x22
jne 0x4d6548
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x4c]
push 1
push eax
call fcn.005e2ada
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 0x12
call fcn.005e2a44
lea ecx, [esp + 0x48]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x50]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x1c]
add eax, 0xfffffffe
push eax
push 1
push edx
call fcn.005e2ada
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 0x13
call fcn.005e2a44
lea ecx, [esp + 0x50]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004ff5c0
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x40
jne 0x4d59e8
lea eax, [esp + 0x20]
push eax
jmp 0x4d59ed
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x4b
jne 0x4d620d
mov ecx, esi
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004ff5c0
fld qword [esp + 0x14]
fxch st(1)
call fcn.005e3796
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
jmp 0x4d653c
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x4c
jne 0x4d6246
mov ecx, esi
call fcn.004ff5c0
fcom qword [0x6018b0]
fnstsw ax
test ah, 1
jne 0x4d69c3
fsqrt
fstp qword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
jmp 0x4d653c
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x4d
jne 0x4d6430
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004ff5c0
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x41
je 0x4d629a
mov ecx, esi
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esi + 0x70]
call fcn.004ff5c0
fcomp qword [esp + 0x14]
lea ecx, [esi + 0xa8]
fnstsw ax
test ah, 1
je 0x4d62a0
lea ecx, [esi + 0xe0]
call fcn.004ff5c0
fstp qword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
push edx
mov ecx, edi
call fcn.004ff620
lea ecx, [esi + 0xa8]
mov byte [esp + 0x12], 1
call fcn.004ff530
push eax
lea ecx, [esp + 0x24]
call fcn.005e2b5e
lea ecx, [esi + 0xe0]
call fcn.004ff530
push eax
lea ecx, [esp + 0x20]
call fcn.005e2b5e
lea ecx, [edi + 0x30]
push 0x639818
mov dword [edi + 0x34], 0
call fcn.005e2a4a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d6548
mov edx, dword [esp + 0x1c]
mov ebx, dword [edx - 8]
cmp ebx, 2
jl 0x4d6548
cmp word [ecx], 0x22
jne 0x4d6548
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d6548
cmp word [edx], 0x22
jne 0x4d6548
cmp word [edx + ebx*2 - 2], 0x22
jne 0x4d6548
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x5c]
push 1
push eax
call fcn.005e2ada
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 0x14
call fcn.005e2a44
lea ecx, [esp + 0x58]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x60]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x1c]
add eax, 0xfffffffe
push eax
push 1
push edx
call fcn.005e2ada
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 0x15
call fcn.005e2a44
lea ecx, [esp + 0x60]
mov byte [esp + 0x130], 2
call fcn.005e2954
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004ff5c0
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x41
je 0x4d6408
mov ecx, esi
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esi + 0x70]
call fcn.004ff5c0
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 1
jne 0x4d6408
lea eax, [esp + 0x20]
push eax
jmp 0x4d640d
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x28]
call fcn.005e2a44
lea edx, [esp + 0x24]
lea ecx, [edi + 0x30]
push edx
call fcn.005e2a44
mov eax, dword [esi]
push 3
mov ecx, esi
call dword [eax]
jmp 0x4d5451
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x4e
jne 0x4d64a3
mov ecx, esi
call fcn.004ff5c0
fst qword [esp + 0x14]
fcomp qword [0x6018a8]
fnstsw ax
test ah, 0x41
jne 0x4d6466
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0x3ff00000
jmp 0x4d6487
fld qword [esp + 0x14]
fcomp qword [0x605330]
fnstsw ax
test ah, 1
je 0x4d6487
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0xbff00000
fld qword [esp + 0x14]
call fcn.005e37d6
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
jmp 0x4d653c
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x4f
jne 0x4d6513
mov ecx, esi
call fcn.004ff5c0
fst qword [esp + 0x14]
fcomp qword [0x6018a8]
fnstsw ax
test ah, 0x41
jne 0x4d64d9
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0x3ff00000
jmp 0x4d64fa
fld qword [esp + 0x14]
fcomp qword [0x605330]
fnstsw ax
test ah, 1
je 0x4d64fa
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0xbff00000
fld qword [esp + 0x14]
call fcn.005e37d0
fstp qword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
jmp 0x4d653c
mov ecx, ebx
call fcn.004ff2a0
cmp eax, 0x50
jne 0x4d69cf
mov ecx, esi
call fcn.004ff5c0
fld1
fpatan
fstp qword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
push edx
mov ecx, edi
call fcn.004ff620
mov byte [esp + 0x12], 1
mov eax, dword [esi]
push 3
mov ecx, esi
call dword [eax]
jmp 0x4d5451
cmp dword [ebx + 0x30], 2
jl 0x4d69e4
lea ecx, [esp + 0x80]
call fcn.004ff370
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push ebx
mov byte [esp + 0x13c], 4
call fcn.004d5390
test eax, eax
je 0x4d69f9
lea ecx, [esp + 0xb8]
call fcn.004ff370
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0xb8]
push eax
push ecx
mov ecx, dword [esp + 0x30]
push ebx
mov byte [esp + 0x13c], 5
call fcn.004d5390
test eax, eax
je 0x4d6a17
mov ecx, esi
call fcn.004ff2a0
cmp eax, 0x232
jne 0x4d66a4
lea ecx, [esp + 0x80]
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esp + 0xb8]
call fcn.004ff5c0
fadd qword [esp + 0x14]
push 0xffffffffffffffff
lea ecx, [esp + 0x84]
fstp qword [esp + 0x18]
call fcn.004ff560
push eax
lea ecx, [esp + 0xc0]
call fcn.004ff560
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push edx
push eax
push edi
call fcn.004ff670
mov eax, dword [esp + 0x104]
add esp, 0x18
test eax, eax
mov byte [esp + 0x12], 1
je 0x4d668b
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x4d668b
lea ecx, [esp + 0xb0]
lea edx, [esp + 0xe8]
push ecx
lea eax, [esp + 0x6c]
push edx
push eax
call fcn.005e2a2c
push eax
lea ecx, [edi + 0x30]
mov byte [esp + 0x134], 6
call fcn.005e2a44
lea ecx, [esp + 0x68]
mov byte [esp + 0x130], 5
call fcn.005e2954
mov dword [edi + 0x34], 1
jmp 0x4d6868
push 0x639818
lea ecx, [edi + 0x30]
call fcn.005e2a4a
mov dword [edi + 0x34], 0
jmp 0x4d6868
mov ecx, esi
call fcn.004ff2a0
cmp eax, 0x233
jne 0x4d6701
lea ecx, [esp + 0x80]
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esp + 0xb8]
call fcn.004ff5c0
fsub qword [esp + 0x14]
push 0xffffffffffffffff
lea ecx, [esp + 0x84]
fstp qword [esp + 0x18]
call fcn.004ff560
push eax
lea ecx, [esp + 0xc0]
call fcn.004ff560
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
jmp 0x4d685a
mov ecx, esi
call fcn.004ff2a0
cmp eax, 0x234
jne 0x4d675e
lea ecx, [esp + 0x80]
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esp + 0xb8]
call fcn.004ff5c0
fmul qword [esp + 0x14]
push 0xffffffffffffffff
lea ecx, [esp + 0x84]
fstp qword [esp + 0x18]
call fcn.004ff560
push eax
lea ecx, [esp + 0xc0]
call fcn.004ff560
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push eax
push ecx
jmp 0x4d685a
mov ecx, esi
call fcn.004ff2a0
cmp eax, 0x235
jne 0x4d67f9
lea ecx, [esp + 0x80]
call fcn.004ff5c0
fstp qword [esp + 0x14]
lea ecx, [esp + 0xb8]
call fcn.004ff5c0
fld qword [esp + 0x14]
fcomp qword [0x606570]
fnstsw ax
test ah, 1
je 0x4d67c9
fld qword [esp + 0x14]
fcomp qword [0x609fc0]
fnstsw ax
test ah, 0x41
jne 0x4d67c9
mov edx, dword [esp + 0x28]
mov dword [esp + 0x14], 0xfeebc2a0
mov dword [esp + 0x18], 0x39b4484b
mov dword [edx + 0x38], 4
fdiv qword [esp + 0x14]
push 0xffffffffffffffff
lea ecx, [esp + 0x84]
fstp qword [esp + 0x18]
call fcn.004ff560
push eax
lea ecx, [esp + 0xc0]
call fcn.004ff560
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push eax
push ecx
jmp 0x4d685a
mov ecx, esi
call fcn.004ff2a0
cmp eax, 0x236
jne 0x4d6868
lea ecx, [esp + 0x80]
call fcn.004ff5c0
fstp qword [esp + 0x34]
lea ecx, [esp + 0xb8]
call fcn.004ff5c0
fst qword [esp + 0x14]
fld qword [esp + 0x34]
call fcn.005e3796
fstp qword [esp + 0x14]
push 0xffffffffffffffff
lea ecx, [esp + 0x84]
call fcn.004ff560
push eax
lea ecx, [esp + 0xc0]
call fcn.004ff560
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push edx
push eax
push edi
call fcn.004ff670
add esp, 0x18
mov byte [esp + 0x12], 1
lea ecx, [esp + 0xb8]
mov byte [esp + 0x130], 4
call fcn.004ff3d0
lea ecx, [esp + 0x80]
mov byte [esp + 0x130], 2
call fcn.004ff3d0
jmp 0x4d5454
cmp eax, 0x1000
jne 0x4d5454
mov ecx, esi
call fcn.004ff320
mov esi, eax
test esi, esi
je 0x4d6a46
lea ecx, [esp + 0xf0]
call fcn.004ff370
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push esi
mov byte [esp + 0x13c], 3
call fcn.004d5390
test eax, eax
je 0x4d6a58
mov eax, dword [esp + 0xf4]
lea ecx, [esp + 0xf8]
push ecx
lea ecx, [edi + 8]
mov dword [edi + 4], eax
call fcn.004ff130
lea edx, [esp + 0x10c]
lea ecx, [edi + 0x1c]
push edx
call fcn.004ff130
lea eax, [esp + 0x120]
lea ecx, [edi + 0x30]
push eax
call fcn.005e2a44
mov ecx, dword [esp + 0x124]
mov byte [esp + 0x12], 1
mov dword [edi + 0x34], ecx
lea ecx, [esp + 0xf0]
mov byte [esp + 0x130], 2
call fcn.004ff3d0
jmp 0x4d5454
mov edx, dword [esp + 0x28]
mov dword [edx + 0x38], 3
mov byte [esp + 0x13], 1
jmp 0x4d6ab5
mov eax, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [eax + 0x38], 3
jmp 0x4d6ab5
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [ecx + 0x38], 1
jmp 0x4d6ab5
mov edx, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [edx + 0x38], 5
jmp 0x4d6ab5
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [ecx + 0x38], 4
jmp 0x4d6ab5
mov edx, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [edx + 0x38], 2
jmp 0x4d6ab5
fstp st(0)
mov byte [esp + 0x13], 1
jmp 0x4d6ab5
mov eax, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [eax + 0x38], 1
jmp 0x4d6ab5
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [ecx + 0x38], 3
jmp 0x4d6ab5
lea ecx, [esp + 0x80]
mov byte [esp + 0x13], 1
mov byte [esp + 0x130], 2
call fcn.004ff3d0
jmp 0x4d6ab5
lea ecx, [esp + 0xb8]
mov byte [esp + 0x13], 1
mov byte [esp + 0x130], 4
call fcn.004ff3d0
lea ecx, [esp + 0x80]
mov byte [esp + 0x130], 2
call fcn.004ff3d0
jmp 0x4d6ab5
mov edx, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [edx + 0x38], 5
jmp 0x4d6ab5
lea ecx, [esp + 0xf0]
mov byte [esp + 0x13], 1
mov byte [esp + 0x130], 2
call fcn.004ff3d0
jmp 0x4d6ab5
mov eax, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [eax + 0x38], 1
jmp 0x4d6ab5
mov ecx, dword [esi + 4]
lea edx, [esi + 8]
mov dword [edi + 4], ecx
push edx
lea ecx, [edi + 8]
call fcn.004ff130
lea eax, [esi + 0x1c]
lea ecx, [edi + 0x1c]
push eax
call fcn.004ff130
lea ecx, [esi + 0x30]
push ecx
lea ecx, [edi + 0x30]
call fcn.005e2a44
mov edx, dword [esi + 0x34]
mov dword [edi + 0x34], edx
mov cl, byte [esp + 0x13]
xor eax, eax
test cl, cl
sete al
lea ecx, [esp + 0x24]
mov esi, eax
mov byte [esp + 0x130], 1
call fcn.005e2954
lea ecx, [esp + 0x1c]
mov byte [esp + 0x130], 0
call fcn.005e2954
lea ecx, [esp + 0x20]
mov dword [esp + 0x130], 0xffffffff
call fcn.005e2954
mov ecx, dword [esp + 0x128]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc