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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5ebaaf
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.005df190
lea ecx, [esp + 0x1c]
mov dword [esp + 0x130], 0
call fcn.005df190
lea ecx, [esp + 0x24]
mov byte [esp + 0x130], 1
call fcn.005df190
mov eax, dword [ebp + 8]
mov byte [esp + 0x130], 2
test eax, eax
jne 0x4d4aa4
lea ecx, [esp + 0x24]
mov byte [esp + 0x130], 1
call fcn.005df184
lea ecx, [esp + 0x1c]
mov byte [esp + 0x130], 0
call fcn.005df184
lea ecx, [esp + 0x20]
mov dword [esp + 0x130], 0xffffffff
call fcn.005df184
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 0x4d6115
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4d6115
test eax, eax
je 0x4d60d3
mov ecx, dword [ebx + 0x24]
cmp eax, ecx
jle 0x4d4add
mov dword [ebx + 0x30], ecx
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4d60d3
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 0x4d60d3
mov ecx, esi
call fcn.004fe3f0
test eax, eax
jne 0x4d60e5
mov ecx, esi
call fcn.004fe670
cmp eax, 0x236
jg 0x4d5ef5
cmp eax, 0x232
jge 0x4d5bb5
cmp eax, 0x3c
jl 0x4d4ab4
cmp eax, 0x50
jg 0x4d4ab4
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4d5fa5
test eax, eax
je 0x4d5fba
mov ecx, dword [ebx + 0x24]
cmp eax, ecx
jle 0x4d4b51
mov dword [ebx + 0x30], ecx
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4d5fba
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 0x4d5fba
mov ebx, ecx
call fcn.004fe3f0
test eax, eax
jne 0x4d5fcf
mov ecx, ebx
call fcn.004fe6f0
test eax, eax
mov dword [esp + 0x14], eax
je 0x4d5fe4
mov ebx, dword [eax + 0x30]
mov ecx, esi
call fcn.004fe6b0
mov ecx, esi
mov dword [esp + 0x34], eax
call fcn.004fe6d0
cmp ebx, dword [esp + 0x34]
setl cl
cmp eax, 0xffffffff
je 0x4d4bbd
cmp ebx, eax
jle 0x4d4bbd
mov al, 1
jmp 0x4d4bbf
xor al, al
test cl, cl
jne 0x4d5fba
test al, al
jne 0x4d5ff9
test ebx, ebx
je 0x4d4ab1
lea eax, [ebx*8]
sub eax, ebx
lea ecx, [eax*8 + 4]
push ecx
call fcn.005df1d8
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
mov byte [esp + 0x130], 7
je 0x4d4c1a
push fcn.004fe7a0
push fcn.004fe740
lea esi, [eax + 4]
push ebx
push 0x38
push esi
mov dword [eax], ebx
call fcn.005dff44
jmp 0x4d4c1c
xor esi, esi
test esi, esi
mov byte [esp + 0x130], 2
je 0x4d600e
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 0x4d4c74
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.004d49f0
test eax, eax
je 0x4d5fb0
jmp 0x4d4c3f
mov ecx, dword [esp + 0x2c]
call fcn.004fe670
cmp eax, 0x3c
jne 0x4d4c9d
mov ecx, esi
call fcn.004fe990
fsin
fstp qword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
jmp 0x4d5b9b
mov ecx, dword [esp + 0x2c]
call fcn.004fe670
cmp eax, 0x3d
jne 0x4d4cc7
mov ecx, esi
call fcn.004fe990
fcos
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
jmp 0x4d5b9c
mov ecx, dword [esp + 0x2c]
call fcn.004fe670
cmp eax, 0x3e
jne 0x4d4d1a
test ebx, ebx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
jle 0x4d4d0b
mov dword [esp + 0x14], ebx
mov dword [esp + 0x34], esi
mov ebx, esi
mov ecx, ebx
add ebx, 0x38
call fcn.004fe990
fadd qword [esp + 0x3c]
dec dword [esp + 0x14]
fstp qword [esp + 0x3c]
jne 0x4d4cf3
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push edx
push eax
jmp 0x4d5b9c
mov ecx, dword [esp + 0x2c]
call fcn.004fe670
cmp eax, 0x3f
jne 0x4d4d58
mov ecx, esi
call fcn.004fe990
fcom qword [0x5fd8b0]
fnstsw ax
test ah, 0x41
jne 0x4d6023
fldln2
fxch st(1)
fyl2x
fstp qword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
jmp 0x4d5b9b
mov ecx, dword [esp + 0x2c]
call fcn.004fe670
cmp eax, 0x40
jne 0x4d4d97
mov ecx, esi
call fcn.004fe990
fcom qword [0x5fd8b0]
fnstsw ax
test ah, 0x41
jne 0x4d6023
fldlg2
fxch st(1)
fyl2x
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
jmp 0x4d5b9c
mov ecx, dword [esp + 0x2c]
call fcn.004fe670
cmp eax, 0x41
jne 0x4d4dc1
mov ecx, esi
call fcn.004fe990
fabs
fstp qword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
jmp 0x4d5b9c
mov ecx, dword [esp + 0x2c]
call fcn.004fe670
cmp eax, 0x42
jne 0x4d4e2b
mov ecx, esi
call fcn.004fe990
fstp qword [esp + 0x2c]
cmp ebx, 1
jle 0x4d4e1c
dec ebx
lea ecx, [esi + 0x38]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x34], ecx
mov ebx, ecx
mov ecx, ebx
call fcn.004fe990
fcomp qword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x4d4e0a
mov ecx, ebx
call fcn.004fe990
fstp qword [esp + 0x2c]
mov eax, dword [esp + 0x14]
add ebx, 0x38
dec eax
mov dword [esp + 0x14], eax
jne 0x4d4ded
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push edx
push eax
jmp 0x4d5b9c
mov ecx, dword [esp + 0x2c]
call fcn.004fe670
cmp eax, 0x43
jne 0x4d4e95
mov ecx, esi
call fcn.004fe990
fstp qword [esp + 0x2c]
cmp ebx, 1
jle 0x4d4e86
dec ebx
lea ecx, [esi + 0x38]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x34], ecx
mov ebx, ecx
mov ecx, ebx
call fcn.004fe990
fcomp qword [esp + 0x2c]
fnstsw ax
test ah, 1
je 0x4d4e74
mov ecx, ebx
call fcn.004fe990
fstp qword [esp + 0x2c]
mov eax, dword [esp + 0x14]
add ebx, 0x38
dec eax
mov dword [esp + 0x14], eax
jne 0x4d4e57
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push edx
push eax
jmp 0x4d5b9c
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x44
jne 0x4d4ec2
mov ecx, esi
call fcn.004fe990
fptan
fstp st(0)
fstp qword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
jmp 0x4d5b9b
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x45
jne 0x4d506f
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004fe990
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004fe990
fcomp qword [esp + 0x14]
lea ecx, [esi + 0x70]
fnstsw ax
test ah, 1
jne 0x4d4efb
lea ecx, [esi + 0xa8]
call fcn.004fe990
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004fe9f0
lea ecx, [esi + 0x70]
mov byte [esp + 0x12], 1
call fcn.004fe900
push eax
lea ecx, [esp + 0x24]
call fcn.005df38e
lea ecx, [esi + 0xa8]
call fcn.004fe900
push eax
lea ecx, [esp + 0x20]
call fcn.005df38e
lea ebx, [edi + 0x30]
push 0x635508
mov ecx, ebx
mov dword [edi + 0x34], 0
call fcn.005df27a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d5ba8
mov edx, dword [esp + 0x1c]
mov edx, dword [edx - 8]
cmp edx, 2
jl 0x4d5ba8
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d5ba8
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + edx*2 - 2], 0x22
jne 0x4d5ba8
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x58]
push 1
push eax
call fcn.005df30a
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 8
call fcn.005df274
lea ecx, [esp + 0x54]
mov byte [esp + 0x130], 2
call fcn.005df184
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.005df30a
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 9
call fcn.005df274
lea ecx, [esp + 0x70]
mov byte [esp + 0x130], 2
call fcn.005df184
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004fe990
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x4d5048
lea eax, [esp + 0x20]
push eax
jmp 0x4d504d
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x28]
call fcn.005df274
lea edx, [esp + 0x24]
mov ecx, ebx
push edx
call fcn.005df274
mov eax, dword [esi]
push 3
mov ecx, esi
call dword [eax]
jmp 0x4d4ab1
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x46
jne 0x4d51fc
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004fe990
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004fe990
fcomp qword [esp + 0x14]
lea ecx, [esi + 0x70]
fnstsw ax
test ah, 0x41
jne 0x4d50a8
lea ecx, [esi + 0xa8]
call fcn.004fe990
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004fe9f0
lea ecx, [esi + 0x70]
mov byte [esp + 0x12], 1
call fcn.004fe900
push eax
lea ecx, [esp + 0x24]
call fcn.005df38e
lea ecx, [esi + 0xa8]
call fcn.004fe900
push eax
lea ecx, [esp + 0x20]
call fcn.005df38e
lea ebx, [edi + 0x30]
push 0x635508
mov ecx, ebx
mov dword [edi + 0x34], 0
call fcn.005df27a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d5ba8
mov edx, dword [esp + 0x1c]
mov edx, dword [edx - 8]
cmp edx, 2
jl 0x4d5ba8
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d5ba8
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + edx*2 - 2], 0x22
jne 0x4d5ba8
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x50]
push 1
push eax
call fcn.005df30a
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 0xa
call fcn.005df274
lea ecx, [esp + 0x4c]
mov byte [esp + 0x130], 2
call fcn.005df184
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.005df30a
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 0xb
call fcn.005df274
lea ecx, [esp + 0x6c]
mov byte [esp + 0x130], 2
call fcn.005df184
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004fe990
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x41
je 0x4d5048
lea eax, [esp + 0x20]
push eax
jmp 0x4d504d
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x47
jne 0x4d5389
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004fe990
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004fe990
fcomp qword [esp + 0x14]
lea ecx, [esi + 0x70]
fnstsw ax
test ah, 0x41
je 0x4d5235
lea ecx, [esi + 0xa8]
call fcn.004fe990
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004fe9f0
lea ecx, [esi + 0x70]
mov byte [esp + 0x12], 1
call fcn.004fe900
push eax
lea ecx, [esp + 0x24]
call fcn.005df38e
lea ecx, [esi + 0xa8]
call fcn.004fe900
push eax
lea ecx, [esp + 0x20]
call fcn.005df38e
lea ebx, [edi + 0x30]
push 0x635508
mov ecx, ebx
mov dword [edi + 0x34], 0
call fcn.005df27a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d5ba8
mov edx, dword [esp + 0x1c]
mov edx, dword [edx - 8]
cmp edx, 2
jl 0x4d5ba8
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d5ba8
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + edx*2 - 2], 0x22
jne 0x4d5ba8
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x48]
push 1
push eax
call fcn.005df30a
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 0xc
call fcn.005df274
lea ecx, [esp + 0x44]
mov byte [esp + 0x130], 2
call fcn.005df184
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.005df30a
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 0xd
call fcn.005df274
lea ecx, [esp + 0x78]
mov byte [esp + 0x130], 2
call fcn.005df184
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004fe990
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x4d5048
lea eax, [esp + 0x20]
push eax
jmp 0x4d504d
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x48
jne 0x4d5516
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004fe990
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004fe990
fcomp qword [esp + 0x14]
lea ecx, [esi + 0x70]
fnstsw ax
test ah, 1
je 0x4d53c2
lea ecx, [esi + 0xa8]
call fcn.004fe990
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004fe9f0
lea ecx, [esi + 0x70]
mov byte [esp + 0x12], 1
call fcn.004fe900
push eax
lea ecx, [esp + 0x24]
call fcn.005df38e
lea ecx, [esi + 0xa8]
call fcn.004fe900
push eax
lea ecx, [esp + 0x20]
call fcn.005df38e
lea ebx, [edi + 0x30]
push 0x635508
mov ecx, ebx
mov dword [edi + 0x34], 0
call fcn.005df27a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d5ba8
mov edx, dword [esp + 0x1c]
mov edx, dword [edx - 8]
cmp edx, 2
jl 0x4d5ba8
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d5ba8
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + edx*2 - 2], 0x22
jne 0x4d5ba8
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x60]
push 1
push eax
call fcn.005df30a
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 0xe
call fcn.005df274
lea ecx, [esp + 0x5c]
mov byte [esp + 0x130], 2
call fcn.005df184
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.005df30a
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 0xf
call fcn.005df274
lea ecx, [esp + 0x74]
mov byte [esp + 0x130], 2
call fcn.005df184
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004fe990
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 1
jne 0x4d5048
lea eax, [esp + 0x20]
push eax
jmp 0x4d504d
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x49
jne 0x4d56a3
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004fe990
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004fe990
fcomp qword [esp + 0x14]
lea ecx, [esi + 0x70]
fnstsw ax
test ah, 0x40
jne 0x4d554f
lea ecx, [esi + 0xa8]
call fcn.004fe990
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004fe9f0
lea ecx, [esi + 0x70]
mov byte [esp + 0x12], 1
call fcn.004fe900
push eax
lea ecx, [esp + 0x24]
call fcn.005df38e
lea ecx, [esi + 0xa8]
call fcn.004fe900
push eax
lea ecx, [esp + 0x20]
call fcn.005df38e
lea ebx, [edi + 0x30]
push 0x635508
mov ecx, ebx
mov dword [edi + 0x34], 0
call fcn.005df27a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d5ba8
mov edx, dword [esp + 0x1c]
mov edx, dword [edx - 8]
cmp edx, 2
jl 0x4d5ba8
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d5ba8
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + edx*2 - 2], 0x22
jne 0x4d5ba8
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x68]
push 1
push eax
call fcn.005df30a
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 0x10
call fcn.005df274
lea ecx, [esp + 0x64]
mov byte [esp + 0x130], 2
call fcn.005df184
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.005df30a
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 0x11
call fcn.005df274
lea ecx, [esp + 0x7c]
mov byte [esp + 0x130], 2
call fcn.005df184
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004fe990
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x40
je 0x4d5048
lea eax, [esp + 0x20]
push eax
jmp 0x4d504d
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x4a
jne 0x4d5830
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004fe990
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004fe990
fcomp qword [esp + 0x14]
lea ecx, [esi + 0x70]
fnstsw ax
test ah, 0x40
je 0x4d56dc
lea ecx, [esi + 0xa8]
call fcn.004fe990
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, edi
call fcn.004fe9f0
lea ecx, [esi + 0x70]
mov byte [esp + 0x12], 1
call fcn.004fe900
push eax
lea ecx, [esp + 0x24]
call fcn.005df38e
lea ecx, [esi + 0xa8]
call fcn.004fe900
push eax
lea ecx, [esp + 0x20]
call fcn.005df38e
lea ebx, [edi + 0x30]
push 0x635508
mov ecx, ebx
mov dword [edi + 0x34], 0
call fcn.005df27a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d5ba8
mov edx, dword [esp + 0x1c]
mov edx, dword [edx - 8]
cmp edx, 2
jl 0x4d5ba8
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d5ba8
mov ecx, dword [esp + 0x1c]
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + edx*2 - 2], 0x22
jne 0x4d5ba8
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x4c]
push 1
push eax
call fcn.005df30a
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 0x12
call fcn.005df274
lea ecx, [esp + 0x48]
mov byte [esp + 0x130], 2
call fcn.005df184
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.005df30a
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 0x13
call fcn.005df274
lea ecx, [esp + 0x50]
mov byte [esp + 0x130], 2
call fcn.005df184
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004fe990
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x40
jne 0x4d5048
lea eax, [esp + 0x20]
push eax
jmp 0x4d504d
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x4b
jne 0x4d586d
mov ecx, esi
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004fe990
fld qword [esp + 0x14]
fxch st(1)
call fcn.005dffc6
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
jmp 0x4d5b9c
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x4c
jne 0x4d58a6
mov ecx, esi
call fcn.004fe990
fcom qword [0x5fd8b0]
fnstsw ax
test ah, 1
jne 0x4d6023
fsqrt
fstp qword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
jmp 0x4d5b9c
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x4d
jne 0x4d5a90
mov ecx, esi
lea ebx, [esi + 0x38]
call fcn.004fe990
fstp qword [esp + 0x14]
mov ecx, ebx
call fcn.004fe990
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x41
je 0x4d58fa
mov ecx, esi
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esi + 0x70]
call fcn.004fe990
fcomp qword [esp + 0x14]
lea ecx, [esi + 0xa8]
fnstsw ax
test ah, 1
je 0x4d5900
lea ecx, [esi + 0xe0]
call fcn.004fe990
fstp qword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
push edx
mov ecx, edi
call fcn.004fe9f0
lea ecx, [esi + 0xa8]
mov byte [esp + 0x12], 1
call fcn.004fe900
push eax
lea ecx, [esp + 0x24]
call fcn.005df38e
lea ecx, [esi + 0xe0]
call fcn.004fe900
push eax
lea ecx, [esp + 0x20]
call fcn.005df38e
lea ecx, [edi + 0x30]
push 0x635508
mov dword [edi + 0x34], 0
call fcn.005df27a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
cmp eax, 2
jl 0x4d5ba8
mov edx, dword [esp + 0x1c]
mov ebx, dword [edx - 8]
cmp ebx, 2
jl 0x4d5ba8
cmp word [ecx], 0x22
jne 0x4d5ba8
cmp word [ecx + eax*2 - 2], 0x22
jne 0x4d5ba8
cmp word [edx], 0x22
jne 0x4d5ba8
cmp word [edx + ebx*2 - 2], 0x22
jne 0x4d5ba8
add eax, 0xfffffffe
lea ecx, [esp + 0x20]
push eax
lea eax, [esp + 0x5c]
push 1
push eax
call fcn.005df30a
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x134], 0x14
call fcn.005df274
lea ecx, [esp + 0x58]
mov byte [esp + 0x130], 2
call fcn.005df184
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.005df30a
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x134], 0x15
call fcn.005df274
lea ecx, [esp + 0x60]
mov byte [esp + 0x130], 2
call fcn.005df184
mov ecx, esi
mov dword [edi + 0x34], 1
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esi + 0x38]
call fcn.004fe990
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x41
je 0x4d5a68
mov ecx, esi
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esi + 0x70]
call fcn.004fe990
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 1
jne 0x4d5a68
lea eax, [esp + 0x20]
push eax
jmp 0x4d5a6d
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x28]
call fcn.005df274
lea edx, [esp + 0x24]
lea ecx, [edi + 0x30]
push edx
call fcn.005df274
mov eax, dword [esi]
push 3
mov ecx, esi
call dword [eax]
jmp 0x4d4ab1
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x4e
jne 0x4d5b03
mov ecx, esi
call fcn.004fe990
fst qword [esp + 0x14]
fcomp qword [0x5fd8a8]
fnstsw ax
test ah, 0x41
jne 0x4d5ac6
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0x3ff00000
jmp 0x4d5ae7
fld qword [esp + 0x14]
fcomp qword [0x601318]
fnstsw ax
test ah, 1
je 0x4d5ae7
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0xbff00000
fld qword [esp + 0x14]
call fcn.005e0006
fstp qword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
jmp 0x4d5b9c
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x4f
jne 0x4d5b73
mov ecx, esi
call fcn.004fe990
fst qword [esp + 0x14]
fcomp qword [0x5fd8a8]
fnstsw ax
test ah, 0x41
jne 0x4d5b39
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0x3ff00000
jmp 0x4d5b5a
fld qword [esp + 0x14]
fcomp qword [0x601318]
fnstsw ax
test ah, 1
je 0x4d5b5a
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0xbff00000
fld qword [esp + 0x14]
call fcn.005e0000
fstp qword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
jmp 0x4d5b9c
mov ecx, ebx
call fcn.004fe670
cmp eax, 0x50
jne 0x4d602f
mov ecx, esi
call fcn.004fe990
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.004fe9f0
mov byte [esp + 0x12], 1
mov eax, dword [esi]
push 3
mov ecx, esi
call dword [eax]
jmp 0x4d4ab1
cmp dword [ebx + 0x30], 2
jl 0x4d6044
lea ecx, [esp + 0x80]
call fcn.004fe740
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.004d49f0
test eax, eax
je 0x4d6059
lea ecx, [esp + 0xb8]
call fcn.004fe740
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.004d49f0
test eax, eax
je 0x4d6077
mov ecx, esi
call fcn.004fe670
cmp eax, 0x232
jne 0x4d5d04
lea ecx, [esp + 0x80]
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esp + 0xb8]
call fcn.004fe990
fadd qword [esp + 0x14]
push 0xffffffffffffffff
lea ecx, [esp + 0x84]
fstp qword [esp + 0x18]
call fcn.004fe930
push eax
lea ecx, [esp + 0xc0]
call fcn.004fe930
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push edx
push eax
push edi
call fcn.004fea40
mov eax, dword [esp + 0x104]
add esp, 0x18
test eax, eax
mov byte [esp + 0x12], 1
je 0x4d5ceb
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x4d5ceb
lea ecx, [esp + 0xb0]
lea edx, [esp + 0xe8]
push ecx
lea eax, [esp + 0x6c]
push edx
push eax
call fcn.005df25c
push eax
lea ecx, [edi + 0x30]
mov byte [esp + 0x134], 6
call fcn.005df274
lea ecx, [esp + 0x68]
mov byte [esp + 0x130], 5
call fcn.005df184
mov dword [edi + 0x34], 1
jmp 0x4d5ec8
push 0x635508
lea ecx, [edi + 0x30]
call fcn.005df27a
mov dword [edi + 0x34], 0
jmp 0x4d5ec8
mov ecx, esi
call fcn.004fe670
cmp eax, 0x233
jne 0x4d5d61
lea ecx, [esp + 0x80]
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esp + 0xb8]
call fcn.004fe990
fsub qword [esp + 0x14]
push 0xffffffffffffffff
lea ecx, [esp + 0x84]
fstp qword [esp + 0x18]
call fcn.004fe930
push eax
lea ecx, [esp + 0xc0]
call fcn.004fe930
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
jmp 0x4d5eba
mov ecx, esi
call fcn.004fe670
cmp eax, 0x234
jne 0x4d5dbe
lea ecx, [esp + 0x80]
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esp + 0xb8]
call fcn.004fe990
fmul qword [esp + 0x14]
push 0xffffffffffffffff
lea ecx, [esp + 0x84]
fstp qword [esp + 0x18]
call fcn.004fe930
push eax
lea ecx, [esp + 0xc0]
call fcn.004fe930
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push eax
push ecx
jmp 0x4d5eba
mov ecx, esi
call fcn.004fe670
cmp eax, 0x235
jne 0x4d5e59
lea ecx, [esp + 0x80]
call fcn.004fe990
fstp qword [esp + 0x14]
lea ecx, [esp + 0xb8]
call fcn.004fe990
fld qword [esp + 0x14]
fcomp qword [0x602558]
fnstsw ax
test ah, 1
je 0x4d5e29
fld qword [esp + 0x14]
fcomp qword [0x605fa8]
fnstsw ax
test ah, 0x41
jne 0x4d5e29
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.004fe930
push eax
lea ecx, [esp + 0xc0]
call fcn.004fe930
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push eax
push ecx
jmp 0x4d5eba
mov ecx, esi
call fcn.004fe670
cmp eax, 0x236
jne 0x4d5ec8
lea ecx, [esp + 0x80]
call fcn.004fe990
fstp qword [esp + 0x34]
lea ecx, [esp + 0xb8]
call fcn.004fe990
fst qword [esp + 0x14]
fld qword [esp + 0x34]
call fcn.005dffc6
fstp qword [esp + 0x14]
push 0xffffffffffffffff
lea ecx, [esp + 0x84]
call fcn.004fe930
push eax
lea ecx, [esp + 0xc0]
call fcn.004fe930
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push edx
push eax
push edi
call fcn.004fea40
add esp, 0x18
mov byte [esp + 0x12], 1
lea ecx, [esp + 0xb8]
mov byte [esp + 0x130], 4
call fcn.004fe7a0
lea ecx, [esp + 0x80]
mov byte [esp + 0x130], 2
call fcn.004fe7a0
jmp 0x4d4ab4
cmp eax, 0x1000
jne 0x4d4ab4
mov ecx, esi
call fcn.004fe6f0
mov esi, eax
test esi, esi
je 0x4d60a6
lea ecx, [esp + 0xf0]
call fcn.004fe740
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.004d49f0
test eax, eax
je 0x4d60b8
mov eax, dword [esp + 0xf4]
lea ecx, [esp + 0xf8]
push ecx
lea ecx, [edi + 8]
mov dword [edi + 4], eax
call fcn.004fe510
lea edx, [esp + 0x10c]
lea ecx, [edi + 0x1c]
push edx
call fcn.004fe510
lea eax, [esp + 0x120]
lea ecx, [edi + 0x30]
push eax
call fcn.005df274
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.004fe7a0
jmp 0x4d4ab4
mov edx, dword [esp + 0x28]
mov dword [edx + 0x38], 3
mov byte [esp + 0x13], 1
jmp 0x4d6115
mov eax, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [eax + 0x38], 3
jmp 0x4d6115
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [ecx + 0x38], 1
jmp 0x4d6115
mov edx, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [edx + 0x38], 5
jmp 0x4d6115
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [ecx + 0x38], 4
jmp 0x4d6115
mov edx, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [edx + 0x38], 2
jmp 0x4d6115
fstp st(0)
mov byte [esp + 0x13], 1
jmp 0x4d6115
mov eax, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [eax + 0x38], 1
jmp 0x4d6115
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [ecx + 0x38], 3
jmp 0x4d6115
lea ecx, [esp + 0x80]
mov byte [esp + 0x13], 1
mov byte [esp + 0x130], 2
call fcn.004fe7a0
jmp 0x4d6115
lea ecx, [esp + 0xb8]
mov byte [esp + 0x13], 1
mov byte [esp + 0x130], 4
call fcn.004fe7a0
lea ecx, [esp + 0x80]
mov byte [esp + 0x130], 2
call fcn.004fe7a0
jmp 0x4d6115
mov edx, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [edx + 0x38], 5
jmp 0x4d6115
lea ecx, [esp + 0xf0]
mov byte [esp + 0x13], 1
mov byte [esp + 0x130], 2
call fcn.004fe7a0
jmp 0x4d6115
mov eax, dword [esp + 0x28]
mov byte [esp + 0x13], 1
mov dword [eax + 0x38], 1
jmp 0x4d6115
mov ecx, dword [esi + 4]
lea edx, [esi + 8]
mov dword [edi + 4], ecx
push edx
lea ecx, [edi + 8]
call fcn.004fe510
lea eax, [esi + 0x1c]
lea ecx, [edi + 0x1c]
push eax
call fcn.004fe510
lea ecx, [esi + 0x30]
push ecx
lea ecx, [edi + 0x30]
call fcn.005df274
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.005df184
lea ecx, [esp + 0x1c]
mov byte [esp + 0x130], 0
call fcn.005df184
lea ecx, [esp + 0x20]
mov dword [esp + 0x130], 0xffffffff
call fcn.005df184
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