Function at 0x434924
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x7c
mov edi, ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0xa8]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xa4]
sub eax, dword [esp + 0x9c]
inc eax
mov ebx, dword [esp + 0xa0]
sub ebx, edi
inc ebx
test edx, edx
jle 0x4349a9
xor edx, edx
xor ebp, ebp
mov dword [esp + 0x44], edi
mov esi, eax
mov ecx, edx
mov edi, dword [esp + 0xb4]
mov eax, ebp
cdq
idiv edi
imul eax, esi
sar eax, 8
mov dword [ecx*4 + 0x7a5340], eax
add ebp, 0x10000
inc ecx
cmp ecx, edi
jl 0x43497a
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0x44]
test ecx, ecx
jle 0x4349da
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x44], edi
mov edi, ebx
mov ebx, eax
mov eax, ebp
cdq
idiv ecx
imul eax, edi
sar eax, 8
mov dword [ebx*4 + 0x7b5440], eax
add ebp, 0x10000
inc ebx
cmp ebx, ecx
jl 0x4349b9
mov edi, dword [esp + 0x44]
movzx eax, byte [0x5c15e0]
test eax, eax
jne 0x434b02
mov byte [0x5c15e0], 1
xor edx, edx
fld qword [0x57ab70]
fld qword [0x57ab78]
fld qword [0x57aba8]
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
fmul st(3)
fcom st(2)
fnstsw ax
sahf
ja 0x434a2b
fld qword [0x57aba0]
fmul st(1)
fmul st(1)
fsubr st(3)
fld st(1)
fmul st(0)
fmulp st(2)
faddp st(1)
jmp 0x434a53
fld qword [0x57ab88]
fmul st(1)
fadd qword [0x57ab80]
fld qword [0x57ab90]
fmul st(2)
fmul st(2)
fsubp st(1)
fld qword [0x57ab98]
fmul st(2)
fmul st(2)
fmulp st(2)
faddp st(1)
fmul st(1)
fnstcw word [esp]
movzx eax, word [esp]
or eax, 0xc00
mov dword [esp + 8], eax
fldcw word [esp + 8]
fistp dword [edx*4 + 0x5bfcc0]
fldcw word [esp]
inc edx
cmp edx, 0x200
jle 0x434a04
fstp st(0)
fstp st(0)
fstp st(0)
xor edx, edx
mov eax, 0xffffff00
mov ebx, 0x100
mov ebp, 0x200
mov dword [esp + 0x2c], ebp
xor ebp, ebp
mov dword [esp + 0x44], edi
mov ecx, eax
mov esi, edx
mov edi, dword [esp + 0x2c]
mov eax, ecx
cdq
mov eax, ecx
xor eax, edx
sub eax, edx
mov dword [ebp + 0x5c04e0], eax
mov eax, esi
cdq
mov eax, esi
xor eax, edx
sub eax, edx
mov dword [ebp + 0x5c08e0], eax
mov eax, ebx
cdq
mov eax, ebx
xor eax, edx
sub eax, edx
mov dword [ebp + 0x5c0ce0], eax
mov eax, edi
cdq
mov eax, edi
xor eax, edx
sub eax, edx
mov dword [ebp + 0x5c10e0], eax
dec esi
dec ecx
dec ebx
dec edi
add ebp, 4
cmp ebp, 0x3fc
jle 0x434aa5
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x24], eax
test eax, eax
jle 0x434f59
xor ebp, ebp
xor eax, eax
mov ecx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xac]
mov esi, dword [esp + 0x9c]
mov edx, dword [eax*4 + 0x7a5340]
sar edx, 8
add edx, esi
test edx, edx
jge 0x434b41
lea ebp, [eax + 1]
cmp edx, ebx
jge 0x434f42
inc eax
cmp eax, ecx
jl 0x434b2e
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x34], ecx
test ecx, ecx
jle 0x434f3b
xor edx, edx
xor eax, eax
mov ebx, dword [eax*4 + 0x7b5440]
sar ebx, 8
add ebx, edi
test ebx, ebx
jge 0x434b7f
lea edx, [eax + 1]
cmp ebx, esi
jge 0x434f32
inc eax
cmp eax, ecx
jl 0x434b6c
test ebp, ebp
jle 0x434bd9
xor ebx, ebx
mov dword [esp + 0x78], ebx
lea ebx, [ecx + ecx]
add ebx, ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x44], edi
mov esi, eax
mov edi, dword [esp + 0x78]
push ebx
push esi
call dword [0x5b9a60]
add esp, 8
add esi, ebx
inc edi
cmp edi, ebp
jl 0x434bb1
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0xb4]
cmp eax, ebx
jge 0x434c49
lea eax, [ecx + ecx]
add eax, eax
mov dword [esp + 0x78], eax
mov ebx, dword [esp + 0x30]
imul ebx, eax
add ebx, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x44], edi
mov ebp, eax
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0xb4]
push ebp
push ebx
call dword [0x5b9a60]
add esp, 8
add ebx, ebp
inc esi
cmp esi, edi
jl 0x434c1d
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
cmp ebp, eax
jge 0x434f2a
mov dword [esp + 0x44], edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
lea eax, [ecx + ecx]
add eax, eax
lea edx, [edx + edx]
add edx, edx
mov dword [esp + 0x2c], edx
mov edi, dword [esp + 0x34]
lea ebx, [edi + edi]
add ebx, ebx
mov edx, dword [esp + 0x14]
add ebx, edx
sub ecx, edi
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x30], ecx
lea ecx, [esi + esi]
add ecx, ecx
mov esi, dword [esp + 0x9c]
imul esi, ecx
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0xac]
imul esi, ecx
dec esi
mov dword [esp + 0x78], esi
mov esi, ebp
imul esi, eax
add esi, edx
mov dword [esp + 0x38], esi
mov edx, ebp
imul edx, eax
add edx, ebx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x28], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x44], edi
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
push eax
push esi
call dword [0x5b9a60]
mov eax, dword [esp + 0x38]
push eax
push ebx
call dword [0x5b9a60]
add esp, 0x10
mov ecx, dword [ebp*4 + 0x7a5340]
movzx eax, cl
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
cmp edi, edx
jge 0x434f15
sar ecx, 8
imul ecx, dword [esp + 0x4c]
add ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x18], ebp
mov edx, dword [esp + 0x3c]
mov edi, dword [edx*4 + 0x7b5440]
mov edx, edi
and edx, 0xff
xor ebp, ebp
xor eax, eax
mov dword [esp + 0x6c], eax
xor ecx, ecx
mov dword [esp + 0x70], ecx
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x64], ebx
sar edi, 8
mov esi, dword [esp + 0x4c]
neg esi
add esi, dword [esp + 0x40]
mov ebx, 0xfffffc00
mov dword [esp + 0x54], eax
mov dword [esp + 0x68], ebp
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x44]
lea edx, [ebp + edi - 1]
mov eax, 0xfffffc00
mov dword [esp + 0x58], ebx
mov dword [esp + 0x74], esi
mov dword [esp + 0x50], edi
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x48]
lea ebp, [edx + edx]
add ebp, ebp
add ebp, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
cmp ebp, ecx
ja 0x434e1a
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x60]
mov ecx, dword [ecx + ebx*4 + 0x5c08e0]
mov ebx, dword [ecx*4 + 0x5bfcc0]
mov ecx, dword [esp + 0x5c]
mov ecx, dword [eax + ecx*4 + 0x5c08e0]
imul ebx, dword [ecx*4 + 0x5bfcc0]
mov ecx, ebx
sar ecx, 7
shr ecx, 0x18
add ecx, ebx
sar ecx, 8
add dword [esp + 0x68], ecx
movzx ebx, byte [ebp + edi]
imul ebx, ecx
add esi, ebx
movzx ebx, byte [ebp + edi + 1]
imul ebx, ecx
add dword [esp + 0x70], ebx
movzx ebx, byte [ebp + edi + 2]
imul ebx, ecx
add dword [esp + 0x6c], ebx
movzx ebp, byte [ebp + edi + 3]
imul ebp, ecx
add dword [esp + 0x64], ebp
inc edx
add eax, 0x400
cmp eax, 0x800
jle 0x434da1
mov dword [esp + 0x54], esi
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x44]
add esi, ecx
add ebx, 0x400
cmp ebx, 0x800
jle 0x434d84
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x68]
test ebp, ebp
jne 0x434e68
mov ebp, 1
cdq
idiv ebp
mov ecx, eax
mov eax, dword [esp + 0x70]
cdq
idiv ebp
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x6c]
cdq
idiv ebp
mov ebx, eax
mov eax, dword [esp + 0x64]
cdq
idiv ebp
test ecx, ecx
jge 0x434e8e
xor ecx, ecx
mov edx, dword [esp + 0x54]
test edx, edx
jge 0x434e9c
xor edx, edx
mov dword [esp + 0x54], edx
test ebx, ebx
jge 0x434ea2
xor ebx, ebx
test eax, eax
jge 0x434ea8
xor eax, eax
cmp ecx, 0xff
jle 0x434eb5
mov ecx, 0xff
cmp edx, 0xff
jle 0x434ec6
mov edx, 0xff
mov dword [esp + 0x54], edx
cmp ebx, 0xff
jle 0x434ed3
mov ebx, 0xff
cmp eax, 0xff
jle 0x434edf
mov eax, 0xff
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
mov byte [edx + ebp*4], cl
mov ecx, dword [esp + 0x54]
mov byte [edx + ebp*4 + 1], cl
mov byte [edx + ebp*4 + 2], bl
mov byte [edx + ebp*4 + 3], al
inc ebp
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x34]
cmp ebp, eax
jl 0x434d35
mov ebx, dword [esp + 0x14]
mov esi, edx
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
add esi, eax
add ebx, eax
inc ebp
mov edx, dword [esp + 0x24]
cmp ebp, edx
jl 0x434cdc
add esp, 0x7c
pop ebx
pop ebp
pop esi
pop edi
ret
mov dword [esp + 0x34], eax
jmp 0x434b8c
xor edx, edx
jmp 0x434b8c
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x24], eax
jmp 0x434b5c
xor ebp, ebp
jmp 0x434b5c