Function at 0x519e4a
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x71c19c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x5c]
call fcn.005b3190
xor ebp, ebp
push 2
mov ecx, esi
mov dword [esp + 0x94], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebp
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], ebp
call fcn.004f87d0
mov ebx, dword [esp + 0x98]
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ebx + 0x40]
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 0x44]
mov dword [esp + 0x28], edx
mov edx, dword [ebx + 0x48]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x74], ecx
mov ecx, dword [0x7a39fc]
mov dword [esp + 0x38], eax
mov dword [esp + 0x78], edx
mov ecx, dword [ecx + 8]
push eax
call fcn.004ae760
mov edi, eax
cmp edi, ebp
mov dword [esp + 0x4c], edi
jne 0x519f15
mov ecx, esi
call fcn.004ef4d0
mov dword [esi + 0x97c], ebp
mov esi, dword [0x745dc4]
jmp 0x51aa26
mov edx, dword [0x7a39fc]
mov eax, dword [esp + 0x10]
mov ecx, dword [edx + 8]
push eax
call fcn.004ae750
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x48], ebp
jne 0x519f56
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x74]
push edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
call fcn.004aa980
add esp, 8
test eax, eax
je 0x519f77
jmp 0x519f9b
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x10]
add eax, 0x90
mov ecx, dword [eax]
mov dword [esp + 0x70], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x74], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x78], eax
mov ecx, esi
call fcn.004cb120
test eax, eax
je 0x519fb0
mov ecx, esi
call fcn.004cb120
mov ecx, eax
call fcn.005089d0
test eax, eax
jne 0x519fb0
mov ecx, esi
call fcn.004ef4d0
mov dword [esi + 0x97c], 0
mov esi, dword [0x745dc4]
jmp 0x51aa26
test ebp, ebp
jne 0x51a0c3
fld dword [esi + 0x98]
lea ecx, [esp + 0x64]
fsub dword [esp + 0x78]
push ecx
fld dword [esi + 0x94]
lea edx, [esp + 0x54]
fsub dword [esp + 0x78]
push edx
fld dword [esi + 0x90]
fsub dword [esp + 0x78]
fstp dword [esp + 0x6c]
fstp dword [esp + 0x70]
fstp dword [esp + 0x74]
call fcn.004ab180
fld dword [esp + 0x80]
add esp, 8
fsub dword [eax + 8]
fld dword [esp + 0x74]
fsub dword [eax + 4]
fld dword [esp + 0x70]
fsub dword [eax]
fstp dword [esp + 0x64]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x7c], eax
fst dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
fld st(1)
mov dword [esp + 0x80], ecx
fstp dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
fld dword [esi + 0x98]
mov dword [esp + 0x84], edx
fsub st(2)
fstp dword [esp + 0x2c]
fld dword [esi + 0x94]
fsub st(1)
fstp st(2)
fstp st(0)
fld dword [esi + 0x90]
fsub dword [esp + 0x64]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld dword [esp + 0x2c]
fmul dword [esp + 0x2c]
faddp st(1)
fcomp dword [0x747d7c]
fnstsw ax
fstp st(0)
test ah, 5
fstp st(0)
jp 0x51a0f5
mov eax, dword [esi + 0x97c]
test eax, eax
jne 0x51a325
test ebp, ebp
mov edi, 1
mov dword [esi + 0x97c], edi
je 0x51a243
mov al, byte [ebp + 8]
cmp al, byte [0x746639]
je 0x51a0b6
cmp al, byte [0x746638]
jne 0x51a243
mov dword [esp + 0x2c], 0x274c
jmp 0x51a24b
mov edx, dword [esp + 0x10]
push 0
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x84]
push ecx
push edx
mov ecx, esi
call fcn.004ee440
mov eax, dword [esp + 0x10]
push 0
push 0x3f000000
push eax
mov ecx, esi
call fcn.004f6000
test eax, eax
jne 0x51a07e
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x60]
push ecx
push 2
lea edx, [esp + 0x6c]
push edx
push 2
lea eax, [esp + 0x78]
push eax
push 2
lea ecx, [esp + 0x68]
push ecx
xor eax, eax
mov ax, word [ebx + 0x6c]
push 3
lea edx, [esp + 0x98]
push edx
push 3
mov ecx, esi
push eax
push 0x1d
call fcn.004ccb00
test ebp, ebp
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
jne 0x51a1bc
lea ecx, [esp + 0x70]
push ecx
push 2
xor ecx, ecx
mov cx, word [ebx + 0x6c]
lea edx, [esp + 0x7c]
push edx
push 2
lea eax, [esp + 0x88]
push eax
push 2
push ecx
push 0x31
mov ecx, esi
call fcn.004ccb00
push ebp
push ebp
push ebp
lea ecx, [esp + 0x70]
push ecx
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push 0x3f800000
push 1
push 0x7f000000
jmp 0x51a200
push 0
push 0
push 0
xor eax, eax
mov ax, word [ebx + 0x6c]
push 0
lea edx, [esp + 0x70]
push edx
push 3
mov ecx, esi
push eax
push 0x13
call fcn.004ccb00
push 0
mov edx, dword [esp + 0x48]
push 0
push 0
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x20]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push edx
push 1
push ecx
mov eax, dword [esi + 0x8c]
push eax
xor eax, eax
mov ax, word [ebx + 0x6c]
lea edx, [esp + 0xb8]
push edx
mov ecx, esi
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
push eax
call fcn.004f8a50
jmp 0x51aa20
mov dword [esp + 0x2c], 0x279c
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x60]
push ecx
push 2
lea edx, [esp + 0x6c]
push edx
push 2
lea eax, [esp + 0x78]
push eax
push 2
lea ecx, [esp + 0x68]
push ecx
xor eax, eax
mov ax, word [ebx + 0x6c]
push 3
lea edx, [esp + 0x98]
push edx
push 3
mov ecx, esi
mov dword [esp + 0xa8], edi
push eax
push 0x1d
mov dword [esp + 0x84], 0x3f800000
mov dword [esp + 0x88], 0x40000000
call fcn.004ccb00
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x88]
push ecx
push edi
lea edx, [esp + 0x68]
push edx
push 2
lea eax, [esp + 0x6c]
push eax
xor edx, edx
mov dx, word [ebx + 0x6c]
push 2
lea ecx, [esp + 0x8c]
push ecx
push edi
mov ecx, esi
push edx
push 6
call fcn.004ccb00
push 5
push 0x7d0
mov ecx, esi
call fcn.004ef480
jmp 0x51aa20
push 0
mov ecx, edi
call fcn.00553960
movzx ebx, word [eax + 2]
push str.SetDC
lea ecx, [esp + 0x54]
call fcn.005e5a90
mov eax, dword [0x7a3a28]
mov eax, dword [eax + 0xb8]
mov eax, dword [eax + 0x8c]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x54]
push edx
push ebx
mov ecx, eax
mov byte [esp + 0x9c], 1
call fcn.00413660
lea ecx, [esp + 0x50]
mov byte [esp + 0x90], 0
call fcn.005e5c20
mov eax, dword [esp + 0x1c]
mov edi, 1
cmp eax, edi
jge 0x51a38d
mov dword [esp + 0x1c], edi
mov ecx, dword [esi + 0xa74]
push 0
push 0
push edi
call fcn.005aa570
mov ecx, dword [esi + 0xa74]
push edi
movsx eax, al
push 0
push edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x38], 0
call fcn.005aa570
cmp al, 5
jl 0x51a3c4
add dword [esp + 0x14], 2
mov eax, dword [esi + 0x4e0]
test eax, eax
je 0x51a3e2
call fcn.006fc447
cdq
mov ecx, 0x14
idiv ecx
inc edx
mov dword [esp + 0x18], edx
jmp 0x51a3f2
mov dword [esp + 0x18], 0x14
mov edx, dword [esp + 0x18]
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x14]
lea ecx, [edx + eax]
mov eax, dword [esp + 0x1c]
cmp ecx, eax
mov dword [esp + 0x40], ecx
jge 0x51a41c
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x51a916
lea edx, [eax - 0xa]
cmp ecx, edx
jge 0x51a828
push str.DetectDCMod
lea ecx, [esp + 0x54]
call fcn.005e5a90
mov eax, dword [0x7a3a28]
mov eax, dword [eax + 0xb8]
mov eax, dword [eax + 0x8c]
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x54]
push edx
push ebx
mov ecx, eax
mov byte [esp + 0x9c], 2
call fcn.00413660
lea ecx, [esp + 0x50]
mov byte [esp + 0x90], 0
call fcn.005e5c20
push str.DisarmDCMod
lea ecx, [esp + 0x54]
call fcn.005e5a90
mov eax, dword [0x7a3a28]
mov eax, dword [eax + 0xb8]
mov eax, dword [eax + 0x8c]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x54]
push edx
push ebx
mov ecx, eax
mov byte [esp + 0x9c], 3
call fcn.00413660
lea ecx, [esp + 0x50]
mov byte [esp + 0x90], 0
call fcn.005e5c20
push str.TrapScript
lea ecx, [esp + 0x54]
call fcn.005e5a90
mov eax, dword [0x7a3a28]
mov eax, dword [eax + 0xb8]
mov eax, dword [eax + 0x8c]
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x54]
push edx
push ebx
mov ecx, eax
mov byte [esp + 0x9c], 4
call fcn.00413270
lea ecx, [esp + 0x50]
mov byte [esp + 0x90], 0
call fcn.005e5c20
test ebp, ebp
je 0x51a607
mov al, byte [ebp + 8]
cmp al, byte [0x746639]
jne 0x51a593
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x18]
mov edi, eax
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [edi + 0x270]
mov dword [edi + 0x2e8], 1
mov byte [edi + 0x2f8], bl
call fcn.005e5c50
mov dl, byte [esp + 0x14]
mov bl, byte [esp + 0x30]
mov cl, byte [esp + 0x18]
mov al, dl
add al, cl
add al, bl
mov byte [edi + 0x2ed], al
mov al, byte [esp + 0x34]
add al, dl
add al, cl
mov byte [edi + 0x2ec], al
mov eax, 1
mov dword [edi + 0x300], eax
mov dword [edi + 0x2fc], eax
mov dword [edi + 0x304], eax
mov edi, dword [edi + 4]
mov ecx, esi
call fcn.004cb120
push edi
lea ecx, [eax + 0x12c]
call fcn.00671c00
jmp 0x51a76f
cmp al, byte [0x746638]
jne 0x51a607
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x48]
mov edi, eax
lea eax, [esp + 0x5c]
push eax
lea ecx, [edi + 0x2e4]
mov dword [edi + 0x278], 1
mov byte [edi + 0x290], bl
call fcn.005e5c50
mov dl, byte [esp + 0x14]
mov bl, byte [esp + 0x30]
mov cl, byte [esp + 0x18]
mov al, dl
add al, cl
add al, bl
mov byte [edi + 0x276], al
mov al, byte [esp + 0x34]
add al, dl
add al, cl
mov byte [edi + 0x27c], al
mov eax, 1
mov dword [edi + 0x284], eax
mov dword [edi + 0x280], eax
mov dword [edi + 0x288], eax
jmp 0x51a578
push 0x318
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x50], eax
test eax, eax
mov byte [esp + 0x90], 5
je 0x51a634
push 0x7f000000
mov ecx, eax
call fcn.0058eae0
mov edi, eax
jmp 0x51a636
xor edi, edi
mov eax, dword [esi + 4]
push eax
mov ecx, edi
mov byte [esp + 0x94], 0
call fcn.0058d700
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [edi + 0x264]
mov byte [edi + 0x2d4], bl
call fcn.005e5c50
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
lea eax, [edx + ecx]
mov edx, dword [esp + 0x14]
add eax, edx
mov dword [edi + 0x2d8], eax
mov eax, dword [esp + 0x34]
add eax, ecx
add eax, edx
push 0
mov dword [edi + 0x2dc], eax
mov eax, 1
push eax
push eax
lea ebp, [esi + 0x90]
push ebp
mov ecx, edi
mov dword [edi + 0x2bc], eax
mov dword [edi + 0x2c0], eax
mov dword [edi + 0x2c4], eax
call fcn.004cd1a0
mov eax, dword [esi + 0xa74]
mov eax, dword [eax + 0x78]
mov dword [edi + 0x2b8], eax
push str.TrapName
lea ecx, [esp + 0x68]
mov dword [esp + 0x40], 0
call fcn.005e5a90
mov ecx, dword [0x7a3a28]
mov eax, dword [ecx + 0xb8]
mov eax, dword [eax + 0x8c]
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x68]
push ecx
push ebx
mov ecx, eax
mov byte [esp + 0x9c], 6
call fcn.00413660
lea ecx, [esp + 0x64]
mov byte [esp + 0x90], 0
call fcn.005e5c20
mov edx, dword [esp + 0x3c]
mov ecx, esi
mov dword [edi + 0x22c], edx
call fcn.004cb120
push eax
lea eax, [esp + 0x74]
push eax
push 0x40000000
mov ecx, edi
call fcn.0058d210
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 0x94]
mov eax, dword [ebp]
push 1
push ecx
push edx
push eax
mov ecx, esi
call fcn.004cb120
push eax
mov ecx, edi
call fcn.0058f030
mov edi, dword [edi + 4]
mov ecx, esi
call fcn.004cb120
push edi
lea ecx, [eax + 0x12c]
call fcn.00671c00
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
push 1
push edi
push 1
mov ecx, esi
call fcn.004ef770
mov ecx, eax
call fcn.00555f40
test eax, eax
je 0x51a80f
mov eax, dword [edi + 0x28c]
cmp eax, 1
jle 0x51a7a2
dec eax
mov dword [edi + 0x28c], eax
jmp 0x51a80f
push 0
push 1
push 1
push edi
mov ecx, esi
call fcn.00510ef0
cmp eax, 1
jne 0x51a80f
mov eax, dword [esi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push eax
call fcn.004ae910
test eax, eax
je 0x51a7e5
mov edx, dword [edi + 0x14]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push edx
push eax
call fcn.004aedb0
mov ecx, eax
call fcn.00569fc0
mov edx, dword [0x7a39fc]
mov ecx, dword [edx + 8]
mov edx, dword [0x7441e0]
mov edi, dword [edi + 0x14]
mov eax, dword [esi + 4]
push 0
push edx
push edi
push eax
push 0
push 0
call fcn.004aed80
mov ecx, eax
call fcn.004b08d0
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x51a916
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
mov edi, 1
add eax, 0xfffffff6
cmp ecx, eax
jge 0x51a916
test ebp, ebp
je 0x51a916
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x40]
test eax, eax
mov ecx, ebp
je 0x51a898
mov edx, dword [ebp]
call dword [edx + 0x40]
push 0x34
mov dword [eax + 0x2bc], edi
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x50], eax
test eax, eax
mov byte [esp + 0x90], 7
je 0x51a87a
mov ecx, eax
call fcn.004d7540
mov ebx, eax
jmp 0x51a87c
xor ebx, ebx
mov word [ebx], 0xc
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, ebx
mov byte [esp + 0x98], 0
call fcn.004d7780
jmp 0x51a8e2
mov eax, dword [ebp]
call dword [eax + 0x48]
test eax, eax
jne 0x51a8ae
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x18]
test eax, eax
je 0x51a916
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x50], eax
test eax, eax
mov byte [esp + 0x90], 8
je 0x51a8d3
mov ecx, eax
call fcn.004d7540
mov ebx, eax
jmp 0x51a8d5
xor ebx, ebx
mov byte [esp + 0x90], 0
mov word [ebx], 0x1a
push edi
mov ecx, ebx
push 0
call fcn.004d76b0
mov edx, dword [0x7441dc]
mov eax, dword [esi + 4]
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
push ebx
push edx
mov edx, dword [esp + 0x18]
push edx
push eax
push 0
push 0
call fcn.004aed80
mov ecx, eax
call fcn.004b08d0
push 0x34
call fcn.006fa7e6
add esp, 4
mov dword [esp + 0x50], eax
test eax, eax
mov byte [esp + 0x90], 9
je 0x51a93b
mov ecx, eax
call fcn.004d69f0
mov edi, eax
jmp 0x51a93d
xor edi, edi
mov eax, dword [esi + 4]
push eax
push 0
mov ecx, edi
mov byte [esp + 0x98], 0
call fcn.004d7780
push 0x5fa
push 0
mov ecx, edi
call fcn.004d76b0
mov eax, dword [esp + 0x18]
push eax
push 1
mov ecx, edi
call fcn.004d76b0
mov ecx, dword [esp + 0x14]
push ecx
push 2
mov ecx, edi
call fcn.004d76b0
mov edx, dword [esp + 0x1c]
push edx
push 3
mov ecx, edi
call fcn.004d76b0
mov ebp, dword [esp + 0x2c]
push ebp
push 4
mov ecx, edi
call fcn.004d76b0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
xor ebx, ebx
cmp ecx, eax
jl 0x51a9b8
push 1
push 5
mov ecx, edi
call fcn.004d76b0
mov ebx, 1
jmp 0x51a9d6
test ebp, ebp
je 0x51a9c0
push 3
jmp 0x51a9cd
add eax, 0xfffffff6
cmp ecx, eax
jge 0x51a9cb
push 2
jmp 0x51a9cd
push 0
mov ecx, edi
push 5
call fcn.004d76b0
push 0x144
push 6
mov ecx, edi
call fcn.004d76b0
push edi
mov ecx, esi
call fcn.004ec700
test ebx, ebx
sete al
dec al
and al, 0xfb
add al, 0x18
mov ecx, esi
push eax
call fcn.004f2520
push 0xe
mov ecx, esi
call fcn.004eb1b0
mov ecx, esi
call fcn.004f5f70
mov ecx, esi
call fcn.004ef4d0
mov dword [esi + 0x97c], 0
mov esi, dword [0x745dc0]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x90], 0xffffffff
call fcn.005e5c20
mov ecx, dword [esp + 0x88]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x84
ret 4